数据库设计与应用_第1页
数据库设计与应用_第2页
数据库设计与应用_第3页
数据库设计与应用_第4页
数据库设计与应用_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据Data是数据库中存储的根本对象,是描述事物的符号记录.其种类包括:文字、图形、图像、声音.其特点:数据与其语义是不可分的.数据结构:逻辑结构:级2数据之间存在的逻辑关系.如表、树、图、数组物理结构:数据在计算机内的存储方式,如顺序方式、链接方式数据库:人们收集并抽取出一个应用所需要的大量数据之后,应将其保存起来以供进一步加工处理,进一步抽取有用信息.数据库的特征:数据按一定的数据模型网状,层次,关系型组织、描述和储存;可为各种用户共享;冗余度较小便于保持数据的一致性;数据独立性较高;易扩展数据库治理系统DatabaseManagementSystem,简称DBMS由一个互相关联的数据的集

2、合和一组用以访问这些数据的程序组成.是位于用户与操作系统之间的一层数据治理软件.DBMS的用途:科学地组织和存储数据、高效地获取和维护数据.主要功能:数据定义功能,即提供数据定义语言DDL,定义数据库中的数据对象;数据操纵功能DML:如插入删除等;数据库的运行治理功能;数据库的建立维护功能.数据库系统DatabaseSystem,简称DBS是指在计算机系统中引入数据库后的系统构成在不引起混淆的情况下常常把数据库系统简称为数据库.由数据库、数据库治理系统、应用系统及其开发工具、数据库治理员和用户构成.数据库的特点:面向全组织的复杂的数据结构;具有较高的数据和程序的独立性;数据的冗余度小,易扩充;

3、统一的数据限制功能,数据共享程度高型是对数据的结构和属性的说明-模式值是型的一个具体赋值-实例数据库三级模式外模式Sub-Schema子模式:用户的数据视图,是数据的局部逻辑结构,模式的子集可以有多个模式Schema:所有用户的公共数据视图,是数据库全体数据的全局逻辑结构和特性的描述只有一个内模式StorageSchema存储模式:是数据的物理结构及存储方式,只有一个数据抽象:物理层:最低层次的抽象,描述数据如何存储逻辑层:描述数据及数据间的关系视图层:描述整个数据库的某一局部,使用户与系统交互更简单数据模型:描述数据、数据联系、数据语义以及一致性约束的概念工具的集合三大数据模型:关系模型:用

4、二维表来表示实体及其相互联系;层次模型:用树结构表示实体之间联系的模型叫层次模型;网状模型:是一个满足以下条件的有向图:可以有一个以上的节点无父节点;至少有一个节点有多于一个的父节点排除树结构事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位.事务具有原子性事务包含的所有操作,要么做完,要么不做,一致性事务开始前和事务结束后,数据库都保持一致性,隔离性对于两个事,持久性即使发生故障,也无法改变其永久性超码superkey:是一个或多个属性的集合,这些属性的集合可以使我们在一个关系中唯一地标识一个元组候选码CandidateKey:关系中的一个属性组

5、,其值能唯一标识一个元组.假设附属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候选码.主码PrimaryKey:进行数据库设计时,从一个关系的多个候选码中选定一个作为主码.主码不可为空.实体完整性:关系的主码中的属性值不能为空值假设主码为空,那么出现不可标识的实体,这是不容许的空值:不知道或无意义.参照完整性:如果关系R2的外部码Fk与关系R1的主码Pk相对应,那么R2中的每一个元组的Fk值或者等于R1中某个元组的Pk值,或者为空值.常用完整性约束:主码约束;唯一性约束;非空值约束:NOTNULL;参照完整性约束关系代数运算:根本运算:一元运算:选择、投影、更名;多元运算:笛

6、卡儿积、并、集合差;其它运算:集合交、.连接、自然连接、除、赋值空值:不知道或不存在.空值的表现:参与算术运算:结果为Null;参与比拟运算:结果为Null;参与逻辑运算:1、Nullortrue=ture2、Nullandfalse=false3、其它情况结果为null空值是一种状态,不是一个明确的值空值测试:isnotnull例如:whereAGEisnull,不可写为whereAGE=null易错点:除isnotnull之外,空值不满足任何查找条件;对于isnull,为空那么true,否那么false;不会返回null;如果null参与聚集运算,那么除count*之外其他聚集函数都忽略n

7、ull;对于聚集函数,假设车入集合为空,count返回0,其他返回null.例:selectcount*fromSC结果为6例:selectcountscorefromSC结果为4不计入那两个null表的删除:DROPtable表名命令元组的删除:deletefrom表名where条件表达式从表中删除符合条件的元组,如果没有where语句,那么删除所有元组建立索引格式:createclusterindexs-indexonSSN可以动态地定义索引,即可以随时建立和删除索引;一个表上可建多个索引.索引可以提升查询效率,但索引过多耗费空间,且降低了插入、删除、更新的效率SQL根本语句格式SELEC

8、TALL|DISTINCT,目标列表达式FROM袭名或视图名,表名或视图名WHERE条件表达式GROUPBYHAVINGORDERBYASC|DESCGROUPBY?句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组.通常会在每组中使用聚集函数HAVING短语:筛选出只有满足指定条件的组ORDERBYF句:对查询结果表按指定列值的升序或降序排序WHER由的运算符算术比拟:,=,=,或!=逻辑:and,or,not不使用rAV,不支持集合成员资格:in,notin谓词:exists,notexists,all,some,unique,between.and.,notbetween.an

9、d,like,notlike,isnull,isnotnull聚集函数:avg,min,max,sum,count.集合:union,intersect,except/minus常用SQL语句例如:例如1给出所有老师的信息select*fromPROF例如2Selectall:不去重复元组;Selectdistinct:去重复元组;r.*:表r的全部属性例如3找出工资低于500的职工的姓名、工资、系别selectPNAME,SAL,DNAMEfromPROF,DEPTwhereSAL50例如8查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数SELECTSno,COUNT(*)

10、FROMSCWHEREscore=90GROUPBYSnoHAVINGCOUNT(*)=3;集合操作:集合并:union集合交:intersect集合差:except(minus)提示集合操作自动去除重复元组,如果要保存重复元组的话,必须用all关键词指明测试集合成员资格in;测试集合是否为空exists;测试集合是否存在重复元组unique视图的特点:虚表,是从一个或几个根本表(或视图)导出的关系;只存放视图的定义,不会出现数据冗余;基表中的数据发生变化,从视图中查询出的数据也随之改变;查询时,视图名可以出现在任何关系名可以出现的地方;视图的定义方式不支持递归定义.简单属性:不可再分的属性如

11、学号、年龄、性别复合(Composite)属性:可以划分为更小的属性.如号=区号+本地号;出生日期=年+月+日单值属性:每一个特定的实体在该属性上的取值唯一.如学生的学号,年龄、性别、系别等多值属性:某个特定的实体在该属性上有多于一个的取值.如学生(学号,联系)(多值用双圈表示;派生属性用虚圈表示)弱实体集的分辨符用下划虚线标明双横线表示全部参与,单横线表示局部参与ER图例如:例如1例如2范式:范式是对关系的不同数据依赖程度的要求第一范式:如果关系模式R所有属性都源自原子域,称模式属于1NF第二范式:假设R71NF,且每个非主属性完全依赖于码,那么称R?2NF数据库作用?外键约束性?这是咱们做

12、过的实验,参考下吧1找出没有选修任何课程的学生的学号、姓名.createtabletest2_01asselectsid,namefrompub.studentwheresidnotin(selectsidfrompub.student_course)2找出至少选修了学号为“202100130417的学生所选修的一门课的学生的学号、姓名createtabletest2_02asselectsid,namefrompub.studentwheresidin(selectdistinctsidfrompub.student_coursewherecidin(selectdistinctcidfro

13、mpub.student_coursewheresid=202100130417)3找出至少选修了一门其先行课程号为“300002号课程的学生的学号、姓名.createtabletest2_03asselectsid,namefrompub.studentwheresidin(selectdistinctsidfrompub.student_coursewherecidin(selectdistinctcidfrompub.coursewherefcid=300002)4找出选修了“操作系统并且也选修了“数据结构的学生的学号、姓名.createtabletest2_04asselectsid,

14、namefrompub.studentwheresidin(selectdistinctsidfrompub.student_coursewherecid=(selectcidfrompub.coursewherename=操作系统)intersect(selectdistinctsidfrompub.student_coursewherecid=(selectcidfrompub.coursewherename=数据Z构)5查询20岁的所有有选课的学生的学号、姓名、平均成绩(avg_score,此为列名,下同)(平均成绩四舍五入到个位)、总成绩(sum_score)Test2_05有四个列,

15、并且列名必须是:sid、name、avg_score、sum_score.通过下面方式实现歹U名定义createtabletest2_05asselectsid,name,(表达式)avg_score,(表达式)sum_scorefrom答案1createtabletest2_05as(selecttone.sid,name,round(avg(score)asavg_score,sum(score)assum_scorefrompub.studenttone,pub.student_coursettwowhereage=20andtone.sid=ttwo.sidgroupbytone.si

16、d,name)答案2createtabletest2_05asselectpub.student.sid,name,round(avg(score)asavg_score,sum(score)assum_scorefrompub.student,pub.student_coursewhereage=20andpub.student.sid=pub.student_course.sidgroupbypub.student.sid,name6查询所有课以及这门课的最高成绩,test2_06有两个列:课程号cid、最高成绩max_scorecreatetabletest2_06asselectcid

17、,max(score)asmax_scorefrompub.student_coursegroupbycid7查询所有不姓张、不姓李、也不姓王的学生的学号sid、姓名namecreatetabletest2_07asselectsid,namefrompub.studentwherenamenotlike张andnamenotlike李andnamenotlike王8查询学生表中每一个姓氏及其人数(不考虑复姓),test2_08有两个列:second_name、p_countcreatetabletest2_08asselectsubstr(name,0,1)assecond_name,count(*)asp_countfrompub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论