• 数据库精华知识点总结(1)—数据库的三层模式和二级映像,E-R(实体联系图)图,关系模型


    Data base

    长期存储在计算机内,有组织的,可共享的大量数据集合。基本特征:永久存储,可共享,有一定的物理和逻辑结构。

    Data base manage system(DBMS);用户和os之间的一层数据管理软件。

    1、提供数据操纵语言DML对数据库增删改查

    2、数据库的建立和维护

    3、提供数据控制功能;在数据库建立,运行和维护时,DBMS管理数据的安全性,完整性,并发控制和故障的系统恢复,(也就是数据库的事务管理和运行管理)

    4、与其它软件系统通信

    Data base system(DBS);引入数据库的计算机系统。

    数据库分几层,并简述,类似的问题很容易很容易考到,那就是关于据库系统的三级模式和两级映像的问题,这里系统的说下,包括它的作用和目的。

    说到模式和映像,先说说DBS的结构;(两种角度看,分清楚条理)

    1、从DBMS看;

    DBS采用三级模式结构,那就是外模式,模式,内模式三级。这是DBMS的内部结构。主流DB在结构上都具有这三个相同的特征,即采用三级模式并且还提供两级映像功能。

    那么到底什么是数据库里的模式(schema)呢?

    模式也叫逻辑模式,是对DB中全体数据的逻辑结构和特征的总体描述,位于DBS的中间层,不关乎物理实现也不关乎应用程序或者程序语言,仅仅涉及到对型(下一个问题回答什么是型)的描述。是数据在逻辑上的视图,记住:一个DB只有一个模式。模式的一个具体值为一个实例(instance),一个模式可以多个实例。

    比如:学生选课系统的数据库模式中,包含全体学生记录、选课记录。那么2014年的学生数据库是一个实例,包含了14级的所有学生的记录。同样2013级的学生也是一个实例。各年级学生是动态变化的但是选课系统的数据库模式是不变的。DBMS提供模式描述语言(模式DDL)

    还有一个是外模式(也叫external schema、子模式,用户模式);

    用户(也就是程序员和使用者)最终看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是和某个应用有关的数据的逻辑表示。通常是模式的子集。一个数据库可以有多个外模式,因用户不同,故外模式的描述也不同。同一个外模式可以让某个用户的多个应用系统使用,但是一个应用系统只能使用一个外模式。

    (PS:这是保证数据安全性的一个有力措施,每个用户只能看见自己对应的外模式的数据!DBMS提供子模式描述语言(子模式DDL)来严格定义子模式)。

    最后一个是内模式(也叫internal schema,存储模式,storage schema);

    一个DB只有一个内模式,关乎数据的物理结构和存储方式。DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格定义内模式。

    接下来说完了三级模式,那么很有必要继续说下数据库的二级映像功能和数据独立性;

    为在数据库系统内部实现3个层次的联系和转化,DBMS提供了三级模式间的两层映像。他们有效组织管理数据,提高了数据库的逻辑独立性和物理独立性。

    外模式/模式映像;

    同一个模式可有任意多个外模式,每一个外模式在DBS中都对应有(局部逻辑结构)外模式/模式映像,它定义了对应关系。当模式改变(如增加新关系,属性,改变数据类型等),DBA可以对外模式/模式映像做相应改变,使外模式不变,应用程序根据数据的外模式编写,所以应用程序不必修改,实现了数据和应用程序的逻辑独立性。

    模式/内模式映像;

    一个DB只有一个模式,并且只有一个内模式,故模式/内模式映像唯一。定义全局逻辑结构和物理存储的对应关系,DB存储结构变化(内模式变化),DBA对模式/内模式映像相应做修改实现模式不变,从而应用程序不变,就保证数据和应用程序的物理独立性

    数据库系统的三级模式和两级映像的小结:

    1. 中间模式(概念模式)相对稳定的反映数据的结构和属性关系,是DB的关键和中心,全局的逻辑结构,独立于其他层次,故设计DB模式结构时应先确定DB逻辑模式。
    2. 模式的实例是动态反映数据的时效性。定义模式时要考虑逻辑结构,还要考虑数据的联系,考虑数据的安全性完整性。
    3. 内模式独立于用户视图(外模式),依赖全局逻辑结构(模式),组织存储数据实现存储时提高空间和时间效率
    4. 外模式面向具体应用,独立于存储设备(内模式),应用的较大修改导致外模式变动,故设计外模式要考虑扩展性。特定应用程序是在外模式数据结构上编制的,依赖于外模式,独立于模式和内模式,不同的应用可以公用一个外模式。
    5. 二级映像保证DB外模式稳定性,是在底层保证应用程序稳定性,除非应用自身变化,否则不会修改。数据和程序的独立性使数据定义和描述从应用分离,由于数据存取是DBMS管理,用户不必考虑存取细节,简化程序编制减少程序的维护和修改。

    DBS的三级模式结构是对数据的三个抽象级别,用户级对外模式,概念级对概念模式,物理级对内模式,不同级别用户对数据库形成不同视图。如下图:

    PS:视图广义指观察、认识和理解数据的范围、角度和方法。

    还有个经常问的问题,那就是关于E-R图的。这里详细说说,基本可以解答所有关于E-R的问题。

    为了更好的理解和复习,先从数据模型(数据库系统核心和基础)说起;(两大类)对现实世界的模拟,分为两个层次(现实对象的两步抽象过程)

    1,概念模型(也叫信息模型);

    在数据库设计阶段,由设计员按照用户观点建模实现对现实世界的概念抽象。

    2,逻辑和物理模型;

    逻辑模型包括网状,层次,关系,对象模型等,由设计人员按照计算机观点建模实现概念模型到适应某DBMS的逻辑模型的转变。再由DBMS完成逻辑到物理模型的转变。而物理模型是数据最底层的抽象,描述数据的存储方式和方法。

    数据模型中的值和型(Type-Value);

    型是对某类数据的结构和属性的描述,如学生记录定义为(姓名,性别,出身年,籍贯,专业)这样的一条记录型,而记录型的记录值为(黎明,男,1990,河北,mse)

    数据模型的组成要素;(三个)

    1、数据结构;(静态描述)描述数据库的组成对象和关系。根据数据结构来对DB分类。非关系模型(层次,网状),关系模型(关系),面向对象模型(对象)。

    2、数据操作;(动态描述)增删改查

    3、数据的完整性和约束;

    概念模型用途;

    1、对现实的信息世界建模,是现实到机器的中间层。

    2、数据库设计工具

    3、数据库设计人员和用户交流的语言

    概念模型要求;简单清晰的语义,直接易懂的表达。

    概念模型(信息世界)的基本概念;

    1、实体(entity);客观存在并且可以区分的具体事物或者抽象概念。

    2、属性(attribute);entity具有的某个特性,如(黎明,男,1990,江苏,mse)描述实体

    3、码(key);唯一的标识实体的属性集!如学生学号。

    4、域(domain);属性的取值范围,如学号的域为几位整数。姓名的域为字符串集合。

    5、实体型(entity type);由实体名和属性名集合来刻画的同类实体称为实体型。如一个具体的学生(黎明,男,1990,江苏,mse),学生这种类型的实体型为;学生(姓名,性别,出身年,籍贯,专业)

    6、实体集(entity set);同一类型的实体的集合。如全体学生。

    7、联系(relationship);现实世界事物的联系在信息世界反映为实体的联系

    联系的分类(根据联系的实体数量);一个实体,两个实体和多个实体,一般都是问的两个实体的联系,那么可分为三类(实体集A对实体集B);

    1:1;A的每一个实体在B中最多有一个实体与之联系,当然也可以没有,反之亦然(相互的)。例如;一个学校只有一个校长,而此校长只是这一个学校的校长。

    1:N;A的每个实体,在B中有N个实体和它对应,反之B中的每个实体在A中只有一个和他对应。例如;一个班级有多名学生,而这每个学生只能是在这一个班里学习。

    N:M;A的每个实体在B中,有N个对应,反之,B的每个实体在A中也有M个对应

    例如;一门课程可以同时有多个学生选修,同时一个学生也可以同时选择多门课程。

    熟悉了以上理论,自然可以引入到ER图,即概念模型的一种表示方法:那就是问到的E-R图,也叫作(entity-relationship)实体关系图

    实体-关系图(Entity-Relation Diagram)定义:

    用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于 DBMS 的 ER 图模型。通常将它简称为 ER 图,相应地可把用 ER 图描绘的数据模型称为 ER 模型。ER 图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。

    构成 E-R 图的基本要素是实体、属性和关系,其表示方法为:

    实体的属性;椭圆表示,和实体用无向边连接

    联系;用菱形表示,框里写联系的名称,无向边连接实体且在无向边旁边写明联系的类型。

    联系的属性;联系本身也可以具有属性,比如学生和课程的联系是学习,学习是联系名,联系类型是N:M,联系的属性是学习成绩同样是椭圆表示,无向边连接。

    一对多联系;

    比如课程的每个实体可由多个老师教,可以有多本参考书。而每个老师只教一门课,每本参考书只对应一门课。

    多对多联系;

    比如每个供应商可以提供给多个项目多种零件,每个项目可以使用多个供应商的零件,每种零件可以由不同供应商供给。

    单个实体型内的联系;(3类,一对一,一对多,多对多)

    例子;职工实体型之间,存在领导和被领导的关系,一个职工由一个领导直接管理,而一个领导可以管理多名职工。属于1对多联系。

    数据库设计工具powerDesigner介绍:

    powerDesigner是sybase公司推出的图形化企业级数据建模和数据库设计工具,(包含了数据库设计的全过程)可以设计业务处理模型,数据流程图,概念模型,物理模型,支持概念模型转为物理模型,由物理模型自动生成数据库脚本,支持主流的关系数据库和应用开发平台。

    可以手动先画ER图,再由powerDesigner设计CDM(conceptual data model)模型。

    关于二维表和表项

    数据库领域常用的逻辑数据模型:层次,网状,关系,面向对象,对象关系模型。其中层次和网状为格式化模型(早期使用),最主要的是关系模型,在用户看来关系模型中数据的逻辑结构是一张二维表(行/列)。此二维表对应一个关系(relation)。关系模型数据结构单一,建立在了集合代数的基础上。

    关系模型数据结构的非形式化定义(形式化定义是数学上的定义);

    关系模型的数据结构:注意;关系不是联系!不要和以前的ER图的联系混了。

    表中的元组;表中的一行是一个元组(tuple)。

    表中的属性;表中的一列是一个属性(attribute),属性的名字就是列名。

    表中的码(key码键),唯一确定一个元组的属性组。如学号唯一确定一个学生。

    域;属性的取值范围,如年龄在1-120等

    分量;元组的一个属性值。

    关系模式;对关系(表)的描述,一般格式:关系名(属性1,属性2,属性……属性n)

    关系模型数据结构的形式化定义(基于数学方法);

    域(Dmain);一组具有相同数据类型的值的集合。如自然数,整数等。

    笛卡尔积(Cartesian product);域上的一种集合运算,给定一组域D1,D2,D3……DN,可以相同,则笛卡尔积为;D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n},其中每个元素(d1,d2,…,dn)叫做一个n元组(元组),每个元组的每一个值叫分量。

    笛卡尔积可以表示一个二维表,表中每行对应一个元组,每列对应一个域。元组总数目等于笛卡尔积的基数连乘。

    关系(relation);一组域D1,D2,D3……DN的笛卡尔积的有限子集(元素子集也就是n元组)叫做在这组域上的关系。记作;R(D1,D2,D3……DN),R为关系名,n是关系的目或度。

    属性(attribute);一个关系就是一个二维表(反之未必),每列对应一个域,因为域可以相同,为了区分给列起名,为属性。

    侯选码(candidate key);关系中某一属性组的值能唯一确定一个元组则该属性组为侯选码。

    主码(primary key);多个侯选码里选一个

    主属性;侯选码的各个属性

    非主属性;不含在侯选码中的属性

    全码(all key);关系模式的所有属性都是侯选码的情况下叫全码。

    关系(二维表)的类型;

    1、基本关系(基本表或基表);实际存在的表,实际存储数据的逻辑表示。

    2、查询表;查询结果对应的表

    3、视图表;是虚表,由基本表或其他视图表导出的表,不对应实际存储的数据。

    基本关系(基本表)的6条性质;

    1、每列同质,必须来自同一个域,数据类型同。

    2、不同列可以出自同一个域(域可重复),但是不同列的属性名要不同。

    3、列序任意。(随意插新属性,一般后插入)

    4、任意两个元组的侯选码不同(否则无法标识唯一元组!理解)。

    5、行序任意。

    6、分量必须取原子值(数据项不可分)。

    再来谈谈关系模式;

    关系模式是型,关系是值,关系模式是对关系的描述,是静态的稳定的。关系的本质是一个二维表,一个元组就是该关系涉及的属性集的笛卡尔积的一个元素,关系是元组的集合,关系是关系模式在某一时刻的状态,动态的,随时间不断变化的。

    关系模式的形式化表现:

    R(U,D,dom,F),R(relation)关系名,U组成该关系的属性名集合,D属性组U中属性所来自的域,dom属性向域的映象集合,F属性间的数据依赖关系集合。

    关系型数据库;

    在一个给定的应用领域中,所有实体间联系的关系的集合构成一个关系数据库。典型关系DB;oracle,mysql,sqlserver,sybase,

    关系数据模型的操作(CRUD);

    增加(Create)、查询(Retrieve)(重新得到)、更新(Update)和删除(Delete)。

    其中retrieve表达能力最强是最主要的部分;分为选择select,投影project,连接join,除divide,并union,差except,交intersection,笛卡尔积等,插入删除修改是数据更新,select,project,union,except,笛卡尔积是5种基本操作。

    关系操作的特点;集合操作方式,操作对象和结果都是集合,非关系操作是记录。

    关系数据语言的分类;关系代数语言relational algebra[ˈældʒəbrə],关系演算语言relation calculus,介于两者之间的结构化查询语言SQL(structured query language);丰富的查询功能,数据定义和数据控制功能(关系数据库的标准语言),用户不必了解数据的存储路径,提高了数据独立性和用户生产率。

    CRUD必须满足关系的完整性约束。Crud对象是关系(若干元组的集合)。

    关系模型的存储结构;实体间关系用表表示。在DBMS中一个表对应一个os文件,或者DBMS从os获得文件,再自己设计表,索引等存储结构。

    关系数据模型优缺点;有严格的数学定义和约束(不同于格式化模型),概念单一;实体的联系用关系表示(表)。数据结构简单清晰,存储路径用户透明,安全保密,数据独立,并简化应用程序的开发过程缺点就是由于存储透明,导致查询效率低,故DBMS必须优化查询请求,增加了开发DBMS的难度。

    数据库的数据模型有哪几种,说出至少两种的特征

    非关系模型;

    层次模型:记录之间的联系通过指针实现,查找效率高。

    网状模型:一个结点可以有多于一个的双亲,允许一个以上的结点无双亲。

    关系模型:概念简单,结构清晰,用户易学易用(重点,前一个题论述)

    面向对象模型(基本抛弃了)

    对象关系模型

    欢迎关注

    dashuai的博客是终身学习践行者,大厂程序员,且专注于工作经验、学习笔记的分享和日常吐槽,包括但不限于互联网行业,附带分享一些PDF电子书,资料,帮忙内推,欢迎拍砖!

  • 相关阅读:
    npx
    EOS踩坑记 2
    Communication Model
    EOS踩坑记
    Windows导入EOS工程
    搭建EOS环境
    加入EOS主网
    Add Inline Actions
    Secondary Indices
    Data Persistence
  • 原文地址:https://www.cnblogs.com/kubixuesheng/p/4391323.html
Copyright © 2020-2023  润新知