当前位置:文档之家› 空间数据库原理-3空间查询语言.ppt-2010-10-20

空间数据库原理-3空间查询语言.ppt-2010-10-20



创建表命令:CREATE TABLE
3.2 关系代数

——与关系模型相关联的形式化查询语言 代数组成

运算对象集合Ωa 运算集合Ωo

关系代数组成

1种运算对象——关系(表) 6种运算——选择,投影,并,笛卡儿积,差,交
3.2.1 选择和投影运算



——操纵单个关系中的数据 选择运算 定义 ——检索关系表中行的子集 语法形式 σ<选择运算符>(关系) 例:“列出Country表中所有位于北美洲(NAM)的国家” σCont = NAM(Country)
Cont Pop(millions) GDP(billions) Life-Exp Shape
Name
Canada
Mexico Cuba USA
NAM
NAM NAM NAM
30.1
107.5 11.7 270.0
658.0
694.3 16.9 8003.0
77.08
69.36 75.95 75.75

2种查询语言

关系代数——形式化的语言 结构化查询语言(SQL)
例子:World数据库

3个实体组成

Country(Name: varchar(35), Cont: varchar(35), Pop: integer,
GDP: integer, Life-Exp: integer, Shape: char(13))
S.D D1 D2 D1 D2
3.2.3 连接运算

选择、投影运算——从单个关系中提取信息 连接运算——从多个关系中提取信息 ——在笛卡儿积的基础上进行选择运算 条件连接

R cS = σc ( R×S) c——条件,通常由R和S的属性表示的条件表达式

自然连接 ——条件连接的特例 ——条件连接中的条件为2个关系中公共属性的相等性,结 果只一列表示公共的等值连接属性。
Shape: char(13))
World数据库的ER图
实体Country具有6个属性 实体City具有5个属性
实体River具有4个属性

World数据库中的3张表

Country表
Name Canada Mexico Brazil Cuba USA Argentina
Cont NAM NAM SAM NAM NAM SAM
3.3.1 DDL(数据定义语言) ——表的添加、删除、修改 一、定义基本表 CREATE TABLE <表名> (<列名> <数据类型>[ <列级完整性约束条件> ] [,<列名> <数据类型>[ <列级完整性约束条件>] ] … [,<表级完整性约束条件> ] ); 如果完整性约束条件涉及到该表的多个属性列, 则必须定义在表级上,否则既可以定义在列级 也可以定义在表级。
PolygonID-1
PolygonID-2 PolygonID-4 PolygonID-5

投影运算 定义 ——检索关系表中列的子集 语法形式 π<属性列表>(关系) 例:“检索Country表中所有国家的名字” πName(Country)
Name
Canada Mexico Brazil Cuba USA Argentina
Cuba
USA Mexico Canada Brazil Argentina Canada Mexico Argentina
2.1
3.2 2.0 3.4 1.5 1.1 0.8 14.1 10.75
Y
Y N N Y N Y Y Y
PointID-1
PointID-2 PointD-3 PointID-4 PointID-5 PointID-6 PointID-7 PointID-8 PointID-9

例子:A={1,2},B={a,b},


笛卡儿积(Cross-Product) ——R×S返回一个关系,其模式由R的全部属性加上S的全部 属性组成。
R.A
R.B
S.C × C1 C2
S.D D1 D2
A1
A2
B1
B2
R.A A1 A1 A2 A2
R.B B1 B1 B2 B2
S.C C1 C2 C1 C2
2600
1200 3000 6000
LineStringID-1
LineStringID-2 LineStringID-3 LineStringID-4
指向Country表的主码
几何形状 RDBMS中,指向线串形状表的主码 OR-DBMS中,线串ADT
命名空间 ——解决表间重名属性问题。 表名.属性名 如: Country.pop
指向Country表的主码
几何形状 RDBMS中,指向点形状表的主码 OR-DBMS中,点ADT

River表
Name Origion Length(kilometers) Shape
Rio Parana
St. Lawrence Rio Grande Mississippi
Brizal
USA USA USA
选择运算与投影运算结合 例:“检索Country表中所有位于北 美洲(NAM)的国家的名字”
πName (σCont = NAM(Country))
Name
Canada
Mexico Cuba USA
3.2.2 集合运算

R和S为2个关系: 集合并(Union) ——R∪S返回R或S中所有的元组。 集合差(Defference) ——R-S返回所有包含在R中,而不包含在S中的元组。 集合交(Intersection) ——对于2个运算相容的关系R和S,R∩S返回既在R中又在 S中的元组。
2个关系列数相同,从左到右顺序一致,共享同样的域


集合的笛卡儿积

对任意集合A,A2,…,An,A1×A2称作集合A1,A2的 笛卡儿积,定义如下:

A1×A2 = {<u,v> | u∈A1,v∈A2} A1×A2×… ×An =(A1×A2×… ×An-1) ×An 则A×B等于{<1,a>, <1,b>, <2,a>, <2,b>} B×A等于{<a,1>, <a,2>, <b,1>, <b,2>} A×=×A= 一般来说:A×B≠B×A,A×(B×C) ≠(A×B)×C
SQL:数据定义语言DDL

数据定义的对象
关系数据库的基本对象是基本表(table) 并可以在基本表上定义视图(view)作为数据 外模式 定义索引(index)用于向系统提示多种存取路 径,由系统自动选择,以加快查找速度。 (用户自定义数据类型)

SQL:数据定义语言DDL
操作方式

[例] 建立“学生”表Student,学号是主码,姓名取 值唯一。
CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, /* 列级完整性约束条件*/ Sname CHAR(20) UNIQUE, /* Sname取唯一值*/ Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20) );
SQL概述-特点

两种使用方式,统一的语法结构

SQL既是自含式语言(用户使用),又是嵌入式语言( 程序员使用) SQL语言完成数据定义、操纵、控制和查询的核心功能 只用了9个动词


语言简洁,易学易用

CREATE, DROP, ALTER, SELECT, INSERT, UPDATE, DELETE, GRANT, REVOKE

City(Name: varchar(35), Country: varchar(35), Pop: integer,
Capital: char(1), Shape: char(9))

River(Name: varchar(35), Origin: varchar(35), Length: integer,


[例] 建立一个“课程”表Course
CREATE TABLE Course ( Cno CHAR(4) PRIMARY KEY, Cname CHAR(40), 先修课程 Cpno CHAR(4) , Ccredit SMALLINT, FOREIGN KEY (Cpno) REFERENCES Course(Cno) );

而在非关系型的数据库系统中,必须在数据库的装入 和使用前全部完成数据库的定义。若要修改已投入运 行的数据库,则需停下一切数据库活动,把数据库卸 出,修改数据库定义并重新编译,再按修改过的数据 库结构重新装入数据

数据库定义随时修改

不必一开始就完全合理

可进行增加索引、撤消索引的实验,检验其对查 询效率的影响
操作对象
创建 基本表Table 视图View 索引Index CREATE TABLE CREATE VIEW 删除 DROP TABLE DROP VIEW 修改 ALTER TABLE
CREATE INDEX
DROP INDEX
SQL:数据定义语言DDL

SQL中,任何时候都可以执行一个数据定义语句 ,随时修改数据库结构。
几何形状 RDBMS中,指向Shape表的主码 OR-DBMS中,多边形ADT

City表
Name Country Pop(millions) Capital Shape
相关主题