关系模型第2章本章主题•什么是数据模型以及它的用途(***)•关系模型的术语(**)•数据库关系的属性(***)•字段及字段的分类(***)•如何标识候选键、主键、备用键和外键(***)•实体完整性和参照完整性的含义(***)数据模型•定义——数据模型(DataModel):–描述数据、数据间的关系以及数据约束的概念集合。•Dr.E.F.Codd于1970年提供了数据库系统的关系模型,它是关系型数据库管理系统的基础。•由三部分组成:–结构部分——如何构造数据库,即对象或关系的集合。–操作部分——如何操作数据,即一组对关系的操作。–完整性规则集合——数据的正确性,即数据完整性和一致性。数据模型•一个数据模型不必为了支持一个应用程序而提供完整的后端代码,它可以不包含安全授权功能,不包含数据库连接代码,也不必显示尺寸和空间的需求。•数据模型是建立数据库的蓝图,而不是数据库本身,是开发项目成功的基础,不过它也是设计应用程序的一个基本元素。•建模的过程就是对现存事物的描述,这样可以查看现有数据库中数据的结构,以及在当前环境下数据库管理的规则。数据模型•模型帮助我们观察当前和过去是怎样管理数据的。•建模是为了选择解决方案,因为即使对于一个相同的问题也可能会有几种不同的解决方案,要知道哪个是正确的并不容易。关系数据库结构SALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111Row(Tuple)Row(Tuple)Column(Attribute)Column(Attribute)S_CUSTOMERTable(Relation)S_CUSTOMERTable(Relation)DomainDomain关系数据库结构SALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111Row(Tuple)Row(Tuple)Column(Attribute)Column(Attribute)S_CUSTOMERTable(Relation)S_CUSTOMERTable(Relation)关系:具有行和列的表。DomainDomain关系数据库结构SALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111Row(Tuple)Row(Tuple)Column(Attribute)Column(Attribute)S_CUSTOMERTable(Relation)S_CUSTOMERTable(Relation)关系:具有行和列的表。元组:关系中的一行记录DomainDomain关系数据库结构SALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111Row(Tuple)Row(Tuple)Column(Attribute)Column(Attribute)S_CUSTOMERTable(Relation)S_CUSTOMERTable(Relation)关系:具有行和列的表。属性:关系中被命名的列。元组:关系中的一行记录DomainDomain关系数据库结构SALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111Row(Tuple)Row(Tuple)Column(Attribute)Column(Attribute)S_CUSTOMERTable(Relation)S_CUSTOMERTable(Relation)关系:具有行和列的表。属性:关系中被命名的列。元组:关系中的一行记录DomainDomain域:一个或多个属性的取值范围。关系数据库关系数据库关系数据库IDIDLAST_NAMELAST_NAMEFIRST_NAMEFIRST_NAME1010HavelHavelMartaMarta1111MageeMageeColinColin1212GiljumGiljumHenryHenry1414NguyenNguyenMaiMaiSALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111TableName:TableName:S_CUSTOMERS_CUSTOMERTableName:TableName:S_EMPS_EMP关系数据库关系数据库关系数据库IDIDLAST_NAMELAST_NAMEFIRST_NAMEFIRST_NAME1010HavelHavelMartaMarta1111MageeMageeColinColin1212GiljumGiljumHenryHenry1414NguyenNguyenMaiMaiSALES_SALES_IDIDNAMENAMEPHONEPHONEREP_IDREP_ID201201UnisportsUnisports55-206610155-20661011212202202SimmsAtheleticsSimmsAtheletics81-2010181-201011414203203DelhiSportsDelhiSports91-1035191-103511414204204WomansportWomansport1-206-104-01031-206-104-01031111TableName:TableName:S_CUSTOMERS_CUSTOMERTableName:TableName:S_EMPS_EMP关系数据库:规范化的表的集合。关系表的属性•表具有如下属性:–数据库中每个表都有区别于其它表的名字。–表中的每个单元恰好只包含一个值。–每个列有不同的名字。–一个列的值来自相同的域。–列的顺序不重要。–每个记录都是不同的,没有重复记录。–理论上说,记录的顺序并不重要。字段•定义——字段(Field):–字段是数据库中最小的结构,表示表所代表的主题的一个特性。•字段是实际存储数据的结构。•数据库的操作都是针对到具体字段的。字段的分类•多成分字段(复合字段)–它的值包含两个或者多个不同的项。•多值字段–包含相同类型的多个实例。•计算字段–包含连接的文本值或数学表达式的结果。Clientsclient_Idclient_first_nameclient_last_nameclient_full_nameaddressclient_city_state_zipaccount_rep9001StewartJamesonStewartJameson......Seattle,WA98125John,Sandi9002ShannonMcLainShannonMcLain......Poulsbo,WA98370Frits9003EstelaPundtEstelapundt......Bellevue,WA98005John9004TimothyEnnisTimothyEnnis......Seattle,WA98125Frits,Sandi9005MarvinRussoMarvinRusso......Bellingham,WA98225Frits,John9006KendraBonnicksenKendraBonnickson......Olympia,WA98504Sandi字段分类例Clientsclient_Idclient_first_nameclient_last_nameclient_full_nameaddressclient_city_state_zipaccount_rep9001StewartJamesonStewartJameson......Seattle,WA98125John,Sandi9002Shannon......9003Estela......John9004TimothyEnnisTimothyEnnis......Seattle,WA981259005MarvinRussoMarvinRusso......9006Kendra......Olympia,WA98504SandiMcLainShannonMcLainPoulsbo,WA98370FritsPundtEstelapundtBellevue,WA98005Frits,SandiBellingham,WA98225Frits,JohnBonnicksenKendraBonnickson字段分类例_多成份字段多成分字段Clientsclient_Idclient_first_nameclient_last_nameclient_full_nameaddressclient_city_state_zipaccount_rep9001StewartJamesonStewartJameson......Seattle,WA98125John,Sandi9002Shannon......9003Estela......John9004TimothyEnnisTimothyEnnis......Seattle,WA98125