![第一章 数据模型_第1页](http://file4.renrendoc.com/view/e66fb56f60c29db9d1b4104135ede7cf/e66fb56f60c29db9d1b4104135ede7cf1.gif)
![第一章 数据模型_第2页](http://file4.renrendoc.com/view/e66fb56f60c29db9d1b4104135ede7cf/e66fb56f60c29db9d1b4104135ede7cf2.gif)
![第一章 数据模型_第3页](http://file4.renrendoc.com/view/e66fb56f60c29db9d1b4104135ede7cf/e66fb56f60c29db9d1b4104135ede7cf3.gif)
![第一章 数据模型_第4页](http://file4.renrendoc.com/view/e66fb56f60c29db9d1b4104135ede7cf/e66fb56f60c29db9d1b4104135ede7cf4.gif)
![第一章 数据模型_第5页](http://file4.renrendoc.com/view/e66fb56f60c29db9d1b4104135ede7cf/e66fb56f60c29db9d1b4104135ede7cf5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章数据模型
内容简介:介绍现代数据库常用的数据模型。数据模型在数据库系统中的作用。数据模型之间的转化。评价各种模型的优劣。如何设计各种模型。第一节关系模型一关系模型的再定义:关系模型是用二维表表示数据,规定表自身上的约束条件,以及表与表之间的约束条件的数据库表示方法。他的操作是基于关系代数和关系演算的。
二特点
1简洁的数据表示方法。2.坚实严谨的理论基础。(模式理论和运算理论)3.使用方便。
关系模型的不足1.应用范围的局限性。2.数据类型单调。3.受到第一范式的限制。4.缺少嵌套机制。(表中不能含表)。模式定义与域完整性约束1.基本语句
CREATETABLE
表名(属性1类型1,…,)2.主码的定义
primarykey(属性1,…,属性n)3.空值与缺省值
notnull,null,default常数
4.属性域的约束
check(逻辑条件)例:建立成绩表
CREATETABLEXK(xhc(10),khc(4),
cjintcheck(cj>=0andcj<=100),primarykey(xh,kh))
五外码与参照完整性1.外码:在另一张表中作为主码的属性。注意:外码可在同一张表中。
foreignkey外码reference主表(主码)
2.参照完整性在次表中出现的外码必须在主表中出现。
实现参照完整性的方法:1.级联规则:.当主表作删除时,外码同时删除。.当主表作修改时,外码相应修改。
ondeletecascadeonupdatecascade2.置空规则:.当主码被删除时,外码被置空。
setnull3.禁止规则:禁止主码作删除。
noaction
例:对xk表说明外码,并按级联规则设置参照完整性。
createtablexk(xhc(10),khc(4),
cjintnotnullcheck(cj>=0andcj<=100),primarykey(xh,kh),foreignkeyxhreferencexs(xh),ondeletecascade,onupdatecascade,foreignkeykhreferencekc(kh),ondeletecascadeonupdatecascade)
思考题:设居民表应包括如下属性:身份证号,姓名,住址,联系电话,性别,配偶身份证号。请建立该表的模式,并设定参照完整性。
解答:
createtablejm(sfzhmc(150),xmc(20),
zzc(20),xbc(2),lxdhc(20)),psfzc(15),primarykey(sfzhm),foreignkeypsfzreferencejm(sfzhm)ondeletesetnullonupdatecascade)第二节扩充的E-R模型及向关系模型的转化子集与继承性1.子集:如果一个实体集是另一个实体集的一部分。则称该实体集为子集,另一实体集为超集。2.子集联系:
ISA
3.继承性:.子集继承超集的所有属性.子集继承超级上的所有联系
例:一个E-R模型的实例
客户储蓄类别开户ISA大客户帐号
实体集向关系的转化\\*1.若属性是简单属性,则可直接转化为表模式。实体码成为表的码。2.若属性是组合属性,则把组合属性转化为简单属性。常见的组合属性有.集合类型.数组类型.结构类型
三联系向关系模式的转化1.1-1和1-n的转化例将下列E-R图转化为关系模式
111n
LD(bmh,ygh)
和SY(bmh,ygh)BM(bmh,mc)YG(ygh,xm)部门职员领导属于部门号职员号名称姓名
思考题:还有其他的设计方法吗?n-m的转化方法将联系转化为关系模式。子集的转化方法.在子集中引入超集的码。.在超集中增加类别标志。例:有下列子集,怎么转化?
学生研究生ISA学号导师
.YJS(xh,ds).XS(xh,lb)
想一想,把研究生分出来有什么好处?如何确定关系模式中的码?1.实体码直接成为关系的码。2.联系转化为关系后,关系的码由联系的函数依赖决定。三种情况:.由实体码决定.由实体码的组合决定.由联系的函数依赖决定
考虑如下的E-R模型:确定联系的码。客户储蓄开户帐号身份证号储蓄编号余额
五E—R模型优劣评析1.直观、简洁。2.与机器模型无关。3.很容易转变为关系模型。4.有时难以区分实体与联系。有时难以区分是实体属性还是联系属性。5.缺乏对实体和联系上的操作的描述机制。
思考题:每份合同中应写明定购商名称,所在地,联系电话,供货商名称,所在地,联系电话,经手人,商品编号,类别,型号,品牌,数量,单价,金额,订货日期,交货日期。每份合同可定若干种商品。请画出反应合同业务的E-R图,并转化为关系模式。第三节面向对象模型与ODL语言对象的基本概念1.对象:被计算机处理和唯一标识的基本单位。2.属性:描述对象特征的数据项。3.对象的表示方法:{OID,[VALUES]}.OID:
对象标识符.VALUES:
表示对象的一组值
4.对象值的类型.基本类型char,float,integer,date.引用类型类名
.元组类型[…].组合类型set,array,structure类1.定义:具有相同属性对象的集合。2.组成:.属性.联系.方法
3.Class
类名[key(一组属性)]
extent外部名{
attribute
类型属性名;…
relationship对象类型联系名[inverse类名::联系名];…}
说明:1.外部名用于查询中。2.对象类型只能是基本对象类型和集合对象类型。3.Inverse用来反映相应一对联系,采用同一个物理结构。
4.子类
定义:一个类的对象集是另一个对象集的子集。继承性:语句:
class
子类名:超类名{
attribute类型属性名;…
relationship对象类型联系名[inverse类名::联系名];…}
例:用ODL语言描述选课E-R图
classstudentextentstudenttext{attributechar(10)xh;attributechar(20)xm;relationshipset(selectcourse)s_select;}学生课程选课学号姓名成绩课程名课号
classcoursekey(kh)extentcoursetet{attributechar(4)kh;attributechar(20)km;relationshipset(selectcourse)c_selected;}classselectcourseextentsctext{attributeint
cj;relationshipcoursesc_course;relationshipstudentsc_student;}
E-R模型向对象模型的转化1.实体向类的转化。
2.不带联系属性的转化。转化为relationship3.带联系属性的转化。.通过属性转移。.通过引入弱实体。如:学生课程选课成绩
转化为:
学生课程选课选择被选成绩课号学号
四对象模型的评析1.类型丰富2.与面向对象程序设计方法保持一致。3.很容易与对象程序设计语言进行混合编程。4.缺乏对联系属性的描述,不如关系模型直观。5.在查询中可能出现副作用。
思考题:1.当联系是多元联系时,应如何转化?2.将下列E-R图转化为对象模型。
演员电影姓名住址名称制片厂演出角色长度
说明:1.除长度是integer外,其余属性为string。2.一部电影可能有多家制片公司制作。3.一名演员可能有多处住址,且由省,市,区(县),街,社区,门牌楼号。第四节对象--关系模型对象-关系模型1.定义:在数据库中的数据或者是以元组的方式存放,或者是以对象的方式存放。2.特点:.在DBMS中存在两种表示数据的方式。表和类。.在数据操作上,既适合关系的处理方式也适合对象的处理方式。新增的类型1.元组类型:
语句:ROW(属性1类型1,…,属性n
类型n)
如:
dz(地址)可定义为:
ROW(shc(20),sic(20),xuanc(20))2.用户自定义类型(UDT)
用createtype定义的类型称为UDT。
语句:createtype
类型名AS(属性1类型1,…,属性n类型n)
作用:.为属性提供一种新类型。.其值以对象方式存储。.定义类型化表。
例:定义读者类型。它包括读者编号,姓名。
createtypedztypeas(dzbhc(12),xmc(20)).
有了dztype后,可以在表的定义和对象的定义中使用该类型。子类型的定义语句:createtype子类名under超类名
as(属性1类型1,…,属性n类型n)
作用:定义一个子类型。它除了继承超类型外,自身还有n个属性。
例:在读者类型中定义学生子类型,它还要增加学号,所在院系,籍贯(省、市、区县)
createtypexstypeunderdztypeas(
xhc(12),szyxc(20),dzrow(shenc(20),Shic(20),xianc(20))
注意:xstype
类型继承了dztype类型的前两个属性。
4.自定义类型属性值的获取与修改.获取属性值的方法:用属性名表示。.改变属性值的方法:属性名(值)例如:在读者类型中引用读者编号
dz.dzbh获取属性函数
dz.sh(“湖北省“)改变属性函数问:在学生类型中如何引用学生所在的省份?设xs是该类型上的变量。
三对象与表的定义1.对象定义语句:
createtable类名of
用户自定义类型。作用:指明了该类的属性由用户自定义类型决定。如:将学生作为对象进行定义。例1:createtablexsofxstype.
以上定义的表称为类型化表。该对象表按对象方式存放。通过指针类型建立对象之间的联系。
2.表的定义
creattable
表名(属性1类型1,…,属性n
类型n)
如:定义学生表例2:
createtablexs(xhc(10),xmc(20),dzROW(shc(20),sic(20),xuan(20))
注意:例1与例2的区别。第五节WEB数据模型HTML
文件1.HTML的基本概念定义:在文本文件中插入某些标记,由因特网识别的文件。特点:.HTML语言规定了一组标记的集合。每个标记有特定的含义。.浏览器能识别这些标记,并将HTML文件转换为人所熟悉的形式,在屏幕上显示出来。
.HTML文件没有格式描述语句。2.HTML文件的一个例子:<html><head><title>
标题</title></head><body><p>
段落</p></body></html>
说明:.每个标记称为元素,元素可以嵌套,开标记与闭标记应成对出现。.每个开标记可带属性,属性为浏览器提供参数。如:<Img
Src=“Mxh.Jpg”Width=“145”Height=“130”Alt=“新闻照片“>
二XML
文件的基本概念1.定义:XML是扩展的HTML,它具有文件格式定义和查询的功能。2.特点:.用户可以自定义任何标记。.增加了文件类型描述语言(DTD)。.增加了基于XML的查询(Xquery)
三
XML的语言成份1.XML元素:用于表示文档内容的基本单位。基本格式为:
<标签名属性名=…>…</标签名>
说明:对元素内容进行标识。2.指令:<?指令>:要求XML处理器应完成的功能。如:<?XMLVersion=‘1.0’>注释:<!注释内容>
作用:引入脚本语言,或其他XML指令。
4.XML结构
XML文件是由若干元素适当嵌套的树形结构。子元素:嵌套在一个元素内的元素称为子元素。一个XML文件例子:
这是一个学生信息的XML文档.doc
XML格式文件----DTD1.DTD是对XML文档格式进行描述的文件。其作用为:.描述XML文档的结构。.描述元素属性的数据类型。.描述元素之间的嵌套关系。DTD文件的构成.文件说明<!DOCTYPE文件名>.元素说明:<!ELEMENT元素名(子元素1,…,子元素n)
说明:.反应一个元素所包含的子元素。.用*号表示若干相同的子元素。.用EMPTY表示空元素。空元素:指不包含任何子元素和元素内容的元素。.属性说明:<!ATTLIST
元素名属性名类型强制性要求>
3DTD中的类型.元素值类型:#PCDATA
字符型.属性类型:ID元素标识码,在文档中的值是唯一的。
IDREF引用另一元素的码.强制性要求:#REQUIRED
必须的#IMPLIED
可选择的一个DTD格式文件实例
例:这是学生文档的格式文件.doc
七.DTD格式文件的不足1.DTD
格式文件中属性的类型单调。2.DTD中缺少严格的数据一致性检查和描述功能。如:<CrsTaken
crscode=“111111111”>
crscode应该是课程号,而不是学号。3.DTD中没有引入XML的名字空间
XMLNS4.DTD中的标签名是全局的,缺少局部标签名。第六节断言与触发器一断言1.定义设置数据库应满足的条件;2.格式:
CREATEASSERTION断言名CHECK
条件说明:当条件为假时,DBMS终止操作,并提示用户。例:限制每门课的选课人数不能超过100人。
CREATEASSERTIONRSXZCHECK100>=ALL(SELECTCOUNT(XH)FROMXKGROUPBYKH
请问:如何写一断言限制学生选课门数超过8门。CREATEASSERTIONXKMSCHECK(8>=ALL(SELECTCOUNT(*)FROMXKGROUPBYXH)
触发器1.事件:引起数据库的状态发生改变的操作。
2.定义:当设定的事件发生时,由DBMS自动启动的维护数据库一致性的程序。3.触发事件:能够启动触发器的事件。
删除(DELETE),插入(INSERT),更新(
UPDATEOF属性。
触发时间:BEFOR;在操作前触发
AFTER:在操作后触发
INSTEADOF:取代操作。3触发条件:执行触发器操作的条件。4触发粒度:引起触发器工作的数据单位。行粒度:(FOREACHROW)
表粒度(FOREACHSTATMENT)5操作:一组SQL语句,或其他语句。三语句与执行1格式:CREATETRIGGER
触发器名{before|after|insteadof属性{insert|delete|updateof属性名}ON表名
referencing[oldas元组名][newas元组名][oldtableas表名][newtableas表名][foreachrow|forstatement][when条件]语句序列。
2说明:删除事件只有旧表或旧行。插入事件只有新表或新行。更新事件既有旧表,旧行,也有新表,新行。触发器的启动和执行当触发事件发生时,触发器被激活,如果触发条件成立,则执行触发器的操作,然后返回应用程序继续执行。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国整木家装行业市场竞争格局、行业政策及需求规模预测报告
- 2025年中国汽车清洗系统行业发展现状调查、竞争格局分析及未来前景预测报告
- 排尿异常的观察与护理课件
- Unit 3 Learning better(复习课件)三年级英语下册同步高效课堂(人教PEP版·2024)
- 二零二五年度马铃薯种薯品牌授权与营销推广合同3篇
- 《隧道监理概述》课件
- 《酒类基础知识培训》课件
- 《柏威夏寺案讲座》课件
- 《颅脑断面解剖》课件
- 2025至2031年中国1,8-辛二醇行业投资前景及策略咨询研究报告
- 焊接加工成本算表
- DL∕T 712-2010 发电厂凝汽器及辅机冷却器管选材导则
- (2024年秋季版)2024年七年级道德与法治下册 4.9.1 生活需要法律教案 新人教版
- 血液透析安全注射临床实践专家共识解读课件
- 5G-A通感一体应用场景研究 2024
- 无人机飞行原理与性能理论知识考试题库及答案
- 旅游学概论(第五版)课件 第一章 旅游学概述
- 学生课后服务活动记录表
- 2024年新改版青岛版(六三制)三年级下册科学全册知识点复习资料
- 排列五历史开奖数据(2004年11月至2013年7月)
- 部编小学语文单元作业设计一年级下册第二单元
评论
0/150
提交评论