Chinaunix首页 | 论坛 | 博客
  • 博客访问: 428790
  • 博文数量: 55
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1584
  • 用 户 组: 普通用户
  • 注册时间: 2013-05-04 15:15
个人简介

热衷技术,热爱交流

文章分类

全部博文(55)

文章存档

2014年(7)

2013年(48)

分类: Oracle

2013-05-06 21:55:39

   关系模型数据库

1.1         关系概念

1.       :域实际就是一个集合,它规定了集合中元素的取值范围(length)以及类型(type)

2.       笛卡尔积:实际就是多个个域完全连接,以下命令得到的就是笛卡尔积:

         select * from course,sc;

         笛卡尔积一般是没有意义的,程序设计时候要尽量避免。

3.       关系:域的笛卡尔积的子集叫做关系.

4.       关系种类:基本表,查询表(查询结果表示的表),视图(由基本表或者其他视图导出的表)。

5.       关系模式,R(U,D,DOM,F),关系四元组,U是属性名集合,D是域,DOM是属性向域的映像集合,F为属性之间的依赖关系。

6.       关系数据库:实体以及实体与实体之间的关系构成的集合。

1.2         关系操作

1.       关系操作:包括查询,更新,删除,插入操作

2.       关系语言:包括关系代数语言,关系演算,以及最重要的sql查询语言

1.3         关系完整性

1. 实体完整性:每条记录有唯一标识,而且不能为空
实体完整性的理论来源是:现实生活中每个实体都是可以区分的!

alter table STUDENT

  add constraint ok primary key (SNO)

  using index

  tablespace HUANGXING

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  );

2. 参照完整性:外键在另外一个关系中必须存在。当然本关系中外键也可以留空。实际上,一个关系的内部属性也可能存在相互引用关系,这种方式在软件开发中并不少见。外码并不一定需要与被参照的关系中的主码同名。

下面语句指定表之间的参照完整性,设置为级联删除模式。

-- Create table

create table SC

(

  sno   NUMBER(5) not null,

  cno   NUMBER(10) not null,

  grade NUMBER(5)

)

tablespace HUANGXING

  pctfree 10

  initrans 1

  maxtrans 255

  storage

  (

    initial 64K

    next 8K

    minextents 1

    maxextents unlimited

  );

-- Create/Recreate primary, unique and foreign key constraints

alter table SC

  add constraint PK primary key (SNO, CNO)

  using index

  tablespace HUANGXING

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    next 1M

    minextents 1

    maxextents unlimited

  );

alter table SC

  add constraint FK1 foreign key (CNO)

  references COURSE (CNO) on delete cascade;

alter table SC

  add constraint PK2 foreign key (SNO)

  references STUDENT (SNO) on delete cascade;

3. 用户定义完整性:表示一些用户自定义的规则,如某一个属性值必须大于多少。

1.4         关系代数

1.       选择:针对单个关系的行运算

2.       投影:针对单个关系的列运算(选出几列)

3.       连接:从多个关系的笛卡尔积中选择满足条件的元组

连接比较重要,包括:

一般连接:从笛卡尔积选取满足条件的一般连接

等值连接:要求两个关系选取比较的列值要相同

自然连接:实质就是在等值连接的基础上去掉重复的列。


外连接:在等值连接中,会舍去两个关系列中比较的列中不相同的元组。如果保留了这些元组,只是把元组其他不存在的部分设为空值,就叫做外连接

左外连接:只是保存左边关系多余的元组

右外连接:只是保留右边关系多余的元组。

4.       除运算:设关系RA,B,C,关系SB,C,D

R÷S表示:R关系中元组在A属性上的分量的象集(BC)A包含关系S在分量(B,C)上的投影的集合

以选课表为例。

sc(sno,cno,grade)

求至少选修了课程号为1,2的学生的学生号。

首先建立临时关系:K

SQL> select cno from course where cno in (1,2);

 

       CNO

----------

         1

         2

把SC与关系K做除运算即可

另外几种关系运算:

1.并运算(union,去掉重复行)

select sno from student where sno<=5 union select sno from student where sno>=4 and  sno<=8;        

 

       SNO

----------

         1

         2

         3

         4

         5

         6

         7

         8
2.  并运算(union all ,不去重复行)

select sno from student where sno<=5 union  all select sno from student where sno>=4 and  sno<=8;   

 

       SNO

----------

         1

         2

         3

         4

         5

         4

         5

         6

         7

         8
3.交运算:(保留相同的行)

select sno from student where sno<=5 intersect select sno from student where sno>=4 and  sno<=8;            

 

       SNO

----------

         4

         5



4. 差运算(去掉相同的行)
select sno from student where sno<=5 minus select sno from student where sno>=4 and  sno<=8;     


       SNO
----------
         1
         2
         3



阅读(1036) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~