Teradata SQL基础教程
第一章关系数据库基础
1.1关系数据库模型
关系数据库理论最早是由Codd博士提出的,一个关系的数学描述其实就是一个二维表,这些二维表按照业务运行的规律组合起来,就是关系数据库模型。这种模型可以简洁地表达出企业或机构的业务运作规律,抓住事物本质,因此非常实用。
每个二维表被称为一个实体(Entity),它可以是人、地点或者某种事物等。表中的每个列被称为属性(Attribute)或者字段(Field),表中的每一行代表了该实体的一个特定实例,称为记录(Record)。表1-1、1-2和1-3分别给出了一个雇员表、部门表和工作表的实例。
表1-1 雇员表(Employee Table)
EMPLOYEE NUMBER MANAGER
EMPLOYEE
NUMBER
DEPARTMEN
T NUMBER
JOB
CODE
LAST
NAME
FIRST
NAME
HIRE
DATE
BIRTH
DATE
SALARY
AMOUNT
PK FK FK FK
1018 1017 501 512101
Ratzlaff
Larry
1978-07-151954-05-31
54000.00 1022 1003 401 412102
Machado
Albert
1979-03-011957-07-14
32300.00 1014 1011 402 422101
Crane
Robert
1978-01-151960-07-04
24500.00 1003 801 401 411100
Trader
James
1976-07-311947-06-19
37850.00 1007 1005 403 432101
Villegas
Arnando
1977-01-021937-01-31
49700.00 1010 1003 401 412101
Rogers
Frank
1977-03-011935-04-23
46000.00 表1-2 部门表(Department Table)
. 1 .
department_number department_name budget_amount manager_employee_number PK  FK
308000.00
1011
support
402 software
982300.00
1003
support
401 customer
1025
293800.00
201 technical
operations
801
100 president 400000.00
1017
308000.00
501 marketing
record是什么意思中文
sales
1005
403 education 932000.00
表1-3 工作表(Job Table)
job_code description hourly_billing_rate hourly_cost_rate PK
421100 Manager - Software Support 0.00 0.00
Rep 0.00 0.00
512101 Sales
511100 Manager - Marketing Sales 0.00 0.00
Engineer 0.00 0.00
312101 Software
411100 Manager - Customer Support 0.00 0.00
431100 Manager - Education 0.00 0.00
413201 Dispatcher 0.00 0.00
432101 Instructor 0.00 0.00
Analyst 0.00 0.00
422101 Software
321100 Manager - Product Planning 0.00 0.00
在一个关系数据库模型中,表和表之间是有关联的,这种关联常用所谓的E-R 图(Entity-Relationship Diagram)来表示。上面三个表的E-R图可以表示为:
. 2 .
图1-1 实体关系图(E-R图)
实体与实体之间的关系有以下三种:
z一对多
指一个实体中有且只有一条记录与另一个实体中的多条记录对应。如图1-1中,一个工作岗位可以有多个雇员,一个部门也可以有多个雇员。我们一般把“一”方称作父表,而把“多”方称作子表。图中的符号是一种比较常见的表示一对多关系的方法,另外一种也经常使用的表示方法如图1-2所示:
图1-2 实体关系图的另一种表示方法(E-R图)
z一对一
指一个实体中的记录与另一个实体的记录处于一对一的关系。
. 3 .
z多对多
指一个实体中的记录与另一个实体的记录是多对多的关系。比如雇员与地址
之间的关系就可能是一种多对多关系,因为一个雇员可能有多个地址,而一个地址也可能对应多个雇员。对于这种关系,在进行数据库逻辑模型设计时,一般要进行分解处理,即分解成两个一对多的关系。
1.2键的定义
在一个实体中,存在一些能唯一标识该实体中各个记录的属性(或属性组合),这些属性被称作键(Key)。真正被挑选出来唯一区分各记录的属性称为主键(Primary Key,缩写为PK),其它未被选中的键称为候选键(Alternate Key,缩写为AK)。例
如在雇员表中,一般可以把雇员编号选作主键。
一个实体中的哪些属性可以是主键,这与具体的系统和业务规则有关。举例
来说,如果一个公司内没有重名的雇员,则将其姓名当作主键也未尝不可。一般来讲,主键属性必须满足以下三个条件:
z必须能唯一区分各数据记录,即不能有重复值
z不可以是空值
z其值很少发生变化
前面两个条件很容易理解,对第三个条件可以举个例子来说明。如在雇员表中,使用雇员编号作为主
键。假设某个雇员进公司时编号为1000,几年后他升为主管,将其编号改为2000。这样就可能产生这样的问题:当我们寻编号1000的雇员信息时,只能发现他以前的记录,而不到他的当前情况;同样,寻编号2000的雇员时,只有现在的信息而没有以前的记录。因此,最好的办法是不要改动雇员编号,或者选用其他候选键作为主键。
. 4 .

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。