数据库基本概念
第1章数据库基础

网状模型(Network Model) 关系模型(Relationship Model)
层次模型和网状模型统称为非关系模型,它是按照图论中
图的观点来研究和表示的数据模型。
Visual basic与SQL Server 2005 清华大学出版社
逻辑模型
层次模型,若用图来表示,层次模型是一棵倒立的树。
是兄弟结点,R2、R4和R5
是叶结点。
Visual basic与SQL Server 2005 清华大学出版社
逻辑模型
网状模型,若用图来表示, 网状模型是一个网络模型。
在数据库中,将满足下列两个条件的数据模型称为网状模型: (1)允许有一个以上的结点双亲结点。 (2)一个结点可以有一个或多个双亲结点。 在网状模型中,由于子结点与双亲结点的联系不是唯一的。因此,网络中的每个联 系都要命名以示区别,并指出与该联系有关的双亲结点和子结点。 右图给出了一个抽象的网状模型。 在图中,R1和 R4之间有两种联系, 分别命名为L1 、L2;R1、R2无双 亲结点,而R3、R5有两个双亲结点。
另一类模型是逻辑模型和物理模型,
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模 型等,按计算机系统的观点对数据建模,用于DBMS实现。
物理模型是对数据最底层的抽象,描述数据在系统内部的表示方
式和存取方法,在磁盘或磁带上的存储方式和存取方法。
Visual basic与SQL Server 2005 清华大学出版社
更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。所以 深受用户的喜爱。
Visual basic与SQL Server 2005 清华大学出版社
1.4 关系数据模型
基本概念
(1)关系:一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成
第01章数据库的基本概念

总学分
50 50 50 50 50 54 52
备注
提前修完《数据结构》 已提前修完一门课
001109
001110 001111 001113
张强民
张蔚 赵琳 严红
计算机
计算机 计算机 计算机
男
女 女 女
1978-08-11
1981-07-22 1980-03-18 1979-08-11
50
50 50 48 有一门功课不及格,待补考 三好生
3.ADO数据库接口
山东工商学院
陈章良
1.3.1 数据库的连接方式
4.数据库接口
5.JDBC数据库接口
山东工商学院
陈章良
1.3.2 C/S模式应用系统
山东工商学院
陈章良
1.3.3 B/S模式应用系统
山东工商学院
陈章良
1.4 SQL Server 2005环境
SQL Server 2005是一个基于客户机/服务器 (C/S)模式的关系数据库管理系统。
山东工商学院
陈章良
1.1.2 数据模型
课程信息表
课程号
101 102 103 104 105 106 107 108 201 202 203
课程名
计算机导论 C++程序设计 数据结构 计算机组成原理 操作系统 数据库原理 计算机网络 计算机新技术 国际贸易概论 经营管理 系统工程
开课学期
1 2 3 3 4 4 5 1 2 3 4
性别
学生
姓名
学号
√ 班级BJB(班级编号,院系,专业名,人数) 学生XSB(学号,姓名,专业名,性别,出生时间,总学分,备注,班级编号)
山东工商学院
计算机科学与技术——数据库系统原理

第一章数据库系统概述本章学习重点:1.数据库系统的三级模式结构2.数据模型中概念层模型(E-R)模型域逻辑层模型(关系模型)第一节数据库基本概念一、数据(Data):是描述事物的符号记录,是指用物理符号记录下来的、可以鉴别的信息包括数字、字母、文字、特殊字符组成的文本数据,也可以是图形、图像、动画、影像、声音、语言等多媒体数据。
例如,日常生活和工作中使用的客户档案记录、商品销售记录等都是数据二、数据库(Database,简称DB)1.定义:是长期储存在计算机中的有组织的、可共享的(大量)数据集合2.数据库中存储的数据具有永久存储、有组织和可共享三个基本特点三、数据库管理系统(Data Management System,简称DBMS)数据库管理系统产生的时期是20世纪60年代后期DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库的故障恢复1.定义:是位于应用程序(用户)与操作系统之间的一层数据管理软件2.主要功能(1)数据定义功能:提供数据定义语言(DDL)定义数据库中的数据对象例如:表、视图、存储过程、触发器等(2)数据操纵功能:提供数据操纵语言(DML)操纵数据实现对数据库的基本操作例如:查询、插入、删除和修改(3)数据库的运行管理:保证数据的安全性(用户只能使用视图定义中的数据,而不能使用视图定义外的其它数据)、完整性(数据的正确性、有效性和相容性,防止错误的数据进入数据库)、多用户对数据的并发使用以及发生故障后的系统恢复(4)数据库的建立和维护功能:创建数据库及对数据库空间的维护、数据库的备份与恢复功能、数据库的重组织功能和性能监视、分析等数据库恢复采用的方法:建立检查点、建立副本、建立日志文件(5)数据组织、存储和管理功能例如:索引查找、顺序查找(6)其他功能:主要包括与其他软件的网络通信功能、不同数据库管理系统之间的数据传输以及相互访问功能等四、数据库系统(Database System,DBS):是指在计算机中引入数据库技术之后的系统1.通常一个完整的数据库系统包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户2.数据库管理员(Database Administrator,DBA):专门负责对数据库进行维护,并保证数据库正常、高效运行第二节数据管理技术的发展一、人工管理阶段(20世纪50年代中期以前)特点:1.数据不保存2.应用程序管理数据3.数据面向应用注意:记录内无结构,整体无结构二、文件系统阶段(20世纪50年代后期到60年代中期)缺陷:数据冗余、数据不一致、数据联系弱特点:1.数据的管理者:文件系统,数据可长期保存2.数据面向的对象:某一应用程序3.数据的共享程度:共享性差、冗余度大4.数据的结构化:记录内有结构,整体无结构5.数据的独立性:独立性差,数据的逻辑结构改变必须修改应用程序6.数据控制能力:应用程序自己控制三、数据库系统阶段(20世纪60年代后期以来)特点:1.数据集成2.数据共享性高3.数据冗余度小4.数据一致性5.数据独立性高6.实施统一管理与控制7.减少应用程序开发与维护的工作量第三节数据库系统的结构一、数据库系统的三级模式结构1.模式:也称为概念模式或逻辑模式,它是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图2.外模式:也称为子模式(Subschema)或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述DBMS提供子模式描述语言(Subschema DDL)来严格地定义子模式3.内模式:也称为存储模式(Storage Schema),它是对数据库中数据物理结构和存储方式的描述,是数据在数据库内部的表示形式4.三级模式结构的两层映像与数据独立性(1)外模式/模式映像(逻辑独立性)(2)模式/内模式映像(物理独立性)数据独立性:不会因为系统数据库存储(物理)结构与数据逻辑结构的变化而影响应用程序二、数据库系统的运行与应用结构1.客户/服务器(Client/Server,C/S)模式(需要下载)例如:QQ、桌面客户端游戏2.浏览器/服务器(Browser/Server,B/S)模式例如:网站、在线web游戏第四节数据模型一、数据特征与数据模型组成要素1.数据结构:描述的是系统的静态特性及数据对象的数据类型、内容、属性以及数据对象之间的联系2.数据操作:描述的是系统的动态特性,是对各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则3.数据约束:描述数据结构中数据间的语法和语义关联,包括相互制约与依存关系以及数据动态变化规则,以保证数据的正确性,有效性与相容性二、数据模型的分类1.概念层数据模型(1)信息世界中的基本概念A.实体(Entity): 客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念,B.属性(Attribute):实体所具有的某种特性称为实体的属性,一个实体可以由多个属性来描述C.码或键(Key):唯一标识实体的属性集称为码D.域(Domain):属性的取值范围称为该属性的域E.实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体,称为实体型F.实体集(Entity Set):同型实体的集合称为实体集G.联系(Relationship):现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系实体型间联系:★一对多1:N★一对一1:1★多对多N:M(2)概念模型的表示方法概念模型:用来描述现实世界的事物,与具体的计算机系统无关表达用户需求观点的数据全局逻辑结构的模型最典型的概念模型是实体联系(E-R)2.逻辑层数据模型(1)层次模型(2)网状模型(3)关系模型(4)面向对象模型在面向对象技术中,相同元素的有序集合,并且允许有重复的元素的复合数据类型是列表类型3.物理层数据模型:也称为数据的物理模型(Physical Model),其描述数据在存储介质上的组织结构,是逻辑模型的物理实现,即每一种逻辑模型在实现时都有与其相对应的物理模型逻辑模型是从数据库实现的观点出发,对数据建模第二章关系数据库本章学习重点:1.关系数据库的相关概念2.关系规范化理论,各个范式之间的转化关系第一节关系数据库概述系统而严格地提出关系模型的是美国IBM公司的E.F.Codd1.1970年提出关系数据模型2. E.F.Codd在1970年发表了论文《Communication of the ACM》3.之后,提出了关系代数和关系演算的概念4.1972年提出了关系的第一、第二、第三范式5.1974年提出了关系的BC范式关系数据库应用数学方法来处理数据库中的数据80年代后,关系数据库系统成为最重要、最流行的数据库系统典型实验系统:System R、University INGRES典型商用系统:ORACLE(占有率最高)、SYBASE、INFORMIX、IBM DB2课程中使用的是MySQL第二节关系数据模型一、关系数据结构关系模型的数据结构非常简单,只包含单一的数据结构,即关系基本术语:1.表(Table):表,也称为关系,是一个二维的数据结构,它由表名构成表的各个列(如学号、姓名等)及若干行数据(各个学生的具体信息)组成。
DB1.数据库基本概念

Q&A
52
谢谢各位的聆听
26
关系型数据库
l 所谓关系型数据库,是指采用了关系模型来组织 数据的数据库。
l 是现代流行数据库系统中应用最为普遍的一种, 也是最有效率的数据组织方式之一。
l 在关系数据库系统中,所有的数据都是按表(按 关系理论的术语,表应成为“关系”)进行组织 和管理的。
27
关系型数据库-关系模型
l 简单来说,关系模型指的就是二维表格模型,而 一个关系型数据库就是由二维表及其之间的联系 组成的一个数据组织。
32
关系数据库标准语言SQL
l SQL概述 l 数据定义 l 查询 l 数据更新 l 视图 l 数据控制 l 嵌入式SQL
33
SQL概述
l SQL的特点
– 1. 综合统一 – 2. 高度非过程化 – 3. 面向集合的操作方式 – 4. 以同一种语法结构提供两种使用方法 – 5. 语言简洁,易学易用
37
查询
l 语句格式
– SELECT子句:指定要显示的属性列 – FROM子句:指定查询对象(基本表或视图) – WHERE子句:指定查询条件 – GROUP BY子句:对查询结果按指定列的值分组,该属
性列值相等的元组为一个组。通常会在每组中作用集 函数。 – HAVING短语:筛选出只有满足指定条件的组 – ORDER BY子句:对查询结果表按指定列值的升序或降 序排序
34
5.语言简捷,易学易用
表3.1 SQL语言的动词
SQL 功 能 数据定义
动词 CREATE,DROP,ALTER
数据查询
SELECT
数据操纵
INSERT,UPDATE DELETE
数据控制
数据库——基本概念

数据库——基本概念⼀、概述(了解) 数据库(Database,简称DB) 数据库技术是计算机应⽤领域中⾮常重要的技术,它产⽣于20世纪,60年代末,是数据管理的最新技术,也是软件技术的⼀个重要分⽀。
简单的说,数据库就是⼀个存放数据的仓库,这个仓库是按照⼀定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据库提供的多种⽅法来管理数据库⾥的数据。
更简单的形象理解,数据库和我们⽣活中存放杂物的仓库性质⼀样,区别只是存放的东西不同。
数据库表(table) 数据表是关系数据库中⼀个⾮常重要的对象,是其他对象的基础,也是⼀系列⼆维数组的集合,⽤来存储、操作数据的逻辑结构。
根据信息的分类性情。
⼀个数据库中可能包含若⼲个数据表,每张表是由⾏和列组成,记录⼀条数据,数据表就增加⼀⾏,每⼀列是由字段名和字段数据集合组成,列被称之为字段。
每⼀列还有⾃⼰的多个属性,例如是否允许为空、默认值、长度、类型、存储编码、注释等。
例如: 数据(data) 存储在表中的信息就叫做数据。
数据库系统有3个主要的组成部分 1.数据库(Database System):⽤于存储数据的地⽅ 2.数据库管理系统(Database Management System,DBMS):⽤户管理数据库的软件。
3.数据库应⽤程序(Database Application):为了提⾼数据库系统的处理能⼒所使⽤的管理数据库的软件补充。
数据库的发展史(五个阶段) 1.⽂件系统 数据库系统的萌芽阶段,通过⽂件来存取数据.⽂件系统是数据库系统的萌芽阶段,出现在上世纪五六⼗年代,可以提供简单的数据存取功能,但⽆法提供完整、统⼀的数据管理功能,例如复杂查询等。
所以在管理较少、较简单的数据或者只是⽤来存取简单数据,没有复杂操作的情况下, 2.层次型数据库 数据库系统真正开始阶段,数据的存储形式类似树形结构,所以也叫树型数据库. 3.⽹状数据库 数据的存储形式类似⽹状结构.从⼆⼗世纪六⼗年代开始,第⼀代数据库系统(层次模型数据库系统、⽹状模型数据库系统)相继问世,它们为统⼀管理和共享数据提供了有⼒的⽀撑在这个阶段,⽹状模型数据库由于它的复杂、专⽤性,没有被⼴泛使⽤。
数据库基本概念

数据库基本概念一、数据库系统的基本概念1)DB:即数据库(Database),是统一管理的相关数据的集合。
长期储存在计算机内,有结构的、集成的、可共享的、统一管理的数据集合。
DB能为各种用户共享,具有最小冗余度,数据间联系密切,而又有较高的数据独立性。
2)DBMS:即数据库管理系统(Database Management System),是位于应用软件与操作系统之间的一层数据管理软件, 为用户或应用程序提供访问DB的方法,包括DB的建立、查询、更新及各种数据控制. DBMS 总是基于某种数据模型.3)DBS:即数据库系统(Database System),是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
4)DBA:负责数据库系统的安全控制与正常运行.利用DBMS提供的各种工具访问数据库。
5)1:1联系:如果实体集E1中的每个实体最多只能和实体集E2中的一个实体有联系,反之亦然,那么实体集E1对E2的联系称为“一对一联系”,记为“1:1"。
6)1:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,而E2中每个实体至多和E1中的一个实体有联系,那么E1对E2的联系是“一对多联系",记为“1:N”。
7)M:N联系:如果实体集E1中每个实体与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么E1对E2的联系是“多对多联系",记为“M:N"。
8)概念模型:概念模型是现实世界到机器世界的一个中间层次.现实世界的事物反映到人的脑子中来,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一DBMS支持的概念模型,然后再把概念模型转换为计算机上某一DBMS支持的数据模型。
表示方法很多,最常用的实体-联系方法(E-R图)9)数据模型:模型是对现实世界的抽象。
数据库基础理论

(3) 数据库管理系统:是管理、维护数据库数据的一组软件。
2.信息与数据
数据与信息在概念上是有区ห้องสมุดไป่ตู้的。
从信息处理角度看,任何事物的属性都是 通过数据来表示的,数据经过加工处理后,使 其具有知识性并对人类活动产生决策作用,从 而形成信息。
数据处理的目的是从大量的、原始 的数据中获得人们所需要的资料并提取有 用的数据成份,作为行为和决策的依据。
上一页
要点
下一页
1.1.2 数据管理的三个阶段
(1) 人工管理(50年代中期以前): 计算机代替了人的手工劳动,但数据不独立,没有软件
系统对数据进行管理。
人工管理阶段出现在计算机应用于数据管理 的初期。由于没有必要的软件、硬件环境的支 持,用户只能直接在裸机上操作。当数据有所 变动时程序则随之改变,独立性差;另外,各 程序之间的数据不能相互传递,缺少共享性, 因而这种管理方式既不灵活,也不安全,编程 效率较差。
1.4.2 表间关联关系的类型 在一个关系数据库中,若想将依赖于关
系模型建立的多个数据表组织在一起,反映 客观事物数据间的多种对应关系,通常将这 些数据表放入同一个数据库中,并建立表间 关联。
在同一个数据库中,相关联的表间关系 的类型有一对一、一对多和多对一3种关系。
上一页
要点
下一页
1.一对一关系
• 有一个以上的结点无双亲。 • 至少有一个结点有多个双亲。
上一页
要点
下一页
1.2.3
关系模型(Relational Model)的 所谓“关系”是有特定含义的。广义地 说,任何数据模型都描述一定事物数据 之间的关系。
数据库复习基本知识

数据库复习基本知识1、数据库的4个基本概念:数据(描述事物的符号记录)、数据库(长期存储在计算机内、有组织的、可共享的大量数据的集合。
数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享概括的讲,数据库数据具有永久存储、有组织和可共享三个基本特点)、数据管理系统(DBMS)和数据库系统(DBS)2、数据库系统的特点:数据结构化(数据库系统实现整体数据的结构化,这是数据库的主要特征这一,也是数据库系统与文件系统的本质区别)、数据的共享性高、冗余度低且易扩充(数据共享可以大大减少数据冗余,节约存储空间,数据共享还能够避免数据之间的不相容性与不一致性)、数据的独立性高(物理独立性和逻辑独立性)、数据由数据库管理系统统一管理和控制(必须具备的4各控制功能1、数据的安全性保护2、数据的完整性检查3、并发控制4、数据库恢复)3、数据库的定义:数据库是长期存储在计算机内有组织、大量、共享的数据集合。
它可以提供各种用户共享,具有最小冗余度和较高的数据独立性。
数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
4、两大数据模型:1、概念模型(也称信息模型,主要用于数据库设计)2、数据模型(包括逻辑模型和物理模型逻辑模型主要用于数据库管理系统的实现)数据模型应满足三方面的要求:1、能比较真实的模拟现实世界2、容易为人所理解3、便于在计算机上实现<5、概念模型:它是按用户的观点来对数据和信息建模,主要用于数据库设计,从现实世界到概念模型的转换是由数据库设计人员完成的。
6、数据模型:它是对现实世界数据特征的抽象。
是用来描述数据、组织数据和对数据进行操作的。
数据模型是数据库系统的核心和基础。
包括逻辑模型(主要包括层次模型、网状模型、关系模型等。
它是按计算机系统的观点对数据建模,主要用于数据库管理系统的实现)和物理模型(对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方方法是面向计算机系统的)从概念模型到逻辑模型的转换可以有数据可设计人员完成,也可以用数据可设计工具协助设计人员完成;从逻辑模型到物理模型的转换主要由数据库管理系统完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库基本概念
引言
本章的目标是讲解数据库研究人员常常要使用到的一些理论和术语。
我所在的工作组集中了一批以开发性能优异的数据库系统为谋生手段的精英,数据库理论乍看起来与我们的具体工作相距甚远。
是否很有必要学习有关数据库理论方面的知识可能是留给你思考的一个问题。
我们说,理解一种技术的基本原理是非常重要的。
这就好比把你的汽车交给一个不懂火花塞工作原理的机械师,或是坐在一架由不懂飞行理论的驾驶员的飞机上。
如果你不懂数据库设计的相关理论,又怎能指望用户登陆门请你设计系统呢?
研究人员所用的某些术语和概念令我们感到困惑,部分原因是数学基础的问题。
有一些术语,大多数程序员理解为一种含义,而实际上是完全不同的另一种含义。
为了能设计合理的系统,了解关系数据库理论是十分重要的。
为了搞清楚研究人员的专业术语,我们需要学习一些关系数据库理论中较浅显的内容,并且同我们所熟知的SQL概念进行比较。
许多书中都讲解了这些内容,所以并不打算过于深入地探讨理论。
我们只提供一些基本且实用的数据库概念。
本章将主要从面向SQL的角度介绍关系理论。
我们将常常涉及相关理论的具体实现,尽管这超出了本书的范围,但却是难以避免的。
然而我们不会陷入实现的细节,仅仅给出一个概述。
更进一步的内容,参看第一章提到的参考书目。
在本章中,我们将会看到下列内容:
☐关系模型——考察相关的技术术语:我们将在后面的章节中构造它们
☐其他数据库概念的定义
关系模型
正像第1章中提到的,E.F.Codd早在1970年就提出了关系模型的概念。
在这一节中,我们将从SQL Server 的角度出发,考察一些在关系模型中比较重要的内容。
正像我们所看到的那样,SQL Server 与关系模型有很多共性的东西,但
也有一些微小的差别。
许多关系学派的学者阿谀奉承各类SQL(不仅是Micrsoft 的SQL Server)的实现。
本书并不去讨论它们中的每一个,我们将回避有关这些问题的争论,而只讨论SQL Server 的物理设计和实现部分的内容。
数据库
我们需要定义的第一个术语是数据库。
简单地说,数据库是一个为了能够无约束且快速检索而排列起来的数据集合。
这可能是图书馆的卡片目录,SQL Server 数据库或文本文件。
严格地讲,在关系理论中并没有这个概念,但是由于我们需要频繁地使用这个术语,所以在此介绍它是有必要的
在SQL Server中,数据库是逻辑地组织在一起的对象和数据的集合。
表
在关系模型中,有一个非常普遍的错误概念就是认为关系是指表之间的关系。
实际上,我们所说的关系(relation)与表这个术语几乎是同义词。
正像我们所看到的,关系模型所使用的不同命名不仅有大多数程序员最初就知道的表,而且还有包含在表中的元素。
我们处理的最主要的元素是表本身。
表是现实世界或虚拟世界中一些对象的物理描述。
在设计表时,你需要关注希望存储的信息,比如,人、地点和物。
为了设计一个正确的表以及它所包含的对象。
表这个术语很早就有,当时的含义是这样的:
表是数据的有序排列。
强调其数据必须按行和列排成一个矩形。
有两种普遍使用的表格:Excel电子数据报表和对Northwind数据库进行一次简单的SQL查询所得到的结果。
如图3-1所示:
图3-1
其实在出现计算机电子数据表格之前,人们在工作中使用的纸张就带有行和列(只是我们没有将它称做电子数据表格)。
在本章节的稍后部分我们将更加深入地探讨行和列。
正像我们在前面提到的,表通称为关系,或者更明确地称为被命名了的关系。
如同我们在稍后讨论的一样,表和视图都被认为是命名了的关系,而结果集被认为是没有命名的关系。
弄清这一点有助于你编写更好的SQL。
表3-1只是定义了很少几列用以描述有一个最普通的饭店内容。
在本章中,表中的每一项都被详细地定义。
在这里并没有指出表和关系是完全相同的含义。
下面是关系的定义:
关系:是属性和元组(tuples)的复合结构,其中属性是指独立的特性,比如,姓名和地址,在表中对应列;元组是指用来描述特定实体(比如,雇员)的属性值的集合,在表中对应行。
在一个关系中,元组不能重复,每一行的内容必须能够被惟一确定。
而且,在一个关系中,元组是没有顺序关系的;交换两个元组的位置不会改变关系。
这个定义在此刻看起来可能有些让人迷惑。
请不必担心,学习完本章后,一切问
题都将迎刃而解。
关系是基于集合论的一个十分严格的数学概念。
表是具有特定性质的关系的物理实现,即所有的表都可以用关系来定义,但并不是所有的关系都可以定义成表。
然而,对于一般的数据库程序员来说,这两个概念的差别确实十分微小。
我们将使用的另一个术语是表中的实体(entity)。
实体这个术语在逻辑模型中频繁使用,逻辑模型是指表的概念版本。
我个人很喜欢这个术语,这是由于它强调:表实际上事物的描述。
“表”与计算机学科之外的含义完全不同,它是一个十分严格的术语。
当我第一次告诉妻子,我创建了一张表,她认为我这个教授可能在说谎,“你用计算机创建表格?”。
确定实体只需要花费很少的时间,而且没有什么约束条件。
在下一章定义表时,我们将首先定义概念化的实体,以避免陷入表本身的结构中。
行与列
行(即记录)表示表中被物理描述的对象实例。
实例的概念与面向对象程序设计有关,但是,在关系的程序设计中会有不同的处理方式。
在面向对象(OO)程序设计(甚至OO数据库)中,类定义通常包含属性和方法,方法可以对类的某个特定实例实施操作,而实例通常被认为就是对象。
在SQL Server中,我们处理的表包含行和列,表的定义与OO中的类定义非常相似,表中的一行就是一个特定实例,它与对象类似。
在表中,没有为维护数据专门实现的方法,我们用能够与表中数据相互作用的专门的SQL操作实现。
实际上,区别它们的只要原因是实现。
由于SQL是为存取数据创建的,所以在任何时刻,都可以轻而易举地查看多个SQL对象的实例,而许多程序员却忘记OO对象与SQL Server中的行同义。
当我们在后面章节中更深入地探讨数据和对象模型后,就会清楚OO方法和关系数据库程序设计的相似之处了。
正像我们从表3-2中所看到的,关系模型中的行和列有着各自不同的名称。
行被称做元组,列被称做属性。
元组是一个比较有趣的技术术语,它可能使你停下来进行思考,也可能使你嬉笑(我就是这样)。
“元组”这个词并没有其他的含义,甚至有可能在一些字典中找不到它。
大概由于这个词没有确切的含义,所以在构造Codd的关系模型时选用了这个词,这样可以避免像表这样的术语产生混淆。
元组这个术语似乎并没有引起许多程序设计人员的关注,而将每列描述的内容称做属性却众所周知。
每列应该包含行即元组的实例特征即属性,或者更简单的说明,每列包含描述行的一个属性。
当我们这样看待列时,它就有了更多的含义,任何从事过OO程序设计的人都可以得到这样的结论:它与OO有很多特性相似之处。
关系理论有一个原则就是属性没有顺序。
你可能已经从实践中得到证实:在一个表中,列是没有先后顺序的,所以当SQL用户希望返回一个固定的列集时,不必提及列必须有效地存储在物理媒介上。
在这里,最重要的一点是你永远不要指出列的物理顺序。
在设计表时,对于数据排列的顺序有几个基本的习惯,例如:主码在表的左侧,后面跟随着比较重要的列,较少读取的数据放在表的右侧,但这只是程序员或用户的习惯。
在第5章中,我们将开始实际地设计表,到那时,我们再对此做更进一步讨论。
在表中,每一行包含相同的列集。
特定表中的每一列的名字必须惟一。
这一点是显而易见的,但还是有必要提一下。
我们需要讨论的最后一个术语是关系的度(degree),对应的是表中的列数。
这个术语使用的并不很多,但是我在一些文档中看到过它,为完整起见,在这里给出这个术语。
属性的特性
将本节这样命名使我自己都感到发笑。
然而,在一个表中,每一列又有若干特性。
最重要的是:
列的合法值
列是否是行标识的一部分
列值是必须的,还是可选的
在下面几节中,我们将更详细地讨论这些内容。
限定列的取值
SQL Server表提供了几种对进行列中的数值进行限制的方法:
☐(基本的)数据类型
☐用户定义的数据类型
☐约束条件
☐触发器和存储过程
☐。