数据库管理模式、数据模型与数据库系统的结构第二次上课

1 数据库管理模式

(1)数据库管理数据主要特点

1)数据是相互关联的

在一个表内,如学生表,不同行的学生之间线性的,一个挨一个.

不同表之间,如学生表和成绩表,之间有联系,如靠两个表的学号列值来联系.

2)数据冗余少:

有如下数据(优化前):

学号  姓名    专业     班主任

01   张三    计算机应用   李四

02   张五    应用数据    王三

03   张六    计算机应用   李四

04   张七    应用数据    王三

表中冗余数据多,同一个专业名和班主任名字重复次数太多,浪费存储空间

减少冗余,优化为:

学生表

学号  姓名  专业代码   班主任代码

01   张三    1        1

02   张五    2        1

03   张六    1        1

04   张七    2        1

 

 

专业表:

 

专业代码  专业名称

 

 1     计算机应用

 

 2      应用数学

 

 

 

班主任表

 

班主任代码   姓名

 

 1        王二

 

 2        李四 

3)程序与数据是独立,分开的。

为保证数据安全,可以对数据库密码,设置用户级别的权限,设备用户访问密码,对敏感数据加密存放

4)很方便地保证数据的完整性和一致性

以学生表为例,绝对不允许只有姓名,而学号列值是空的。

如在成绩中增加一个学生的成绩行,如果该生的学号并不已经存在于学生表中,此时不能操作的。

又如,从人事表中删除一个人,它对应考勤表,工资表该人的数据应该自动删除。

 

例子:

三张基本表如下

 

 

 

 

学生表:描述了学生基本参数,主码为学号(以学号来区别学生的唯一)

课程表:描述学所开所有课程,其中课程号为主码

成绩表:描述了每一个学生的每一门选课的成绩数据,主码为学号+课程号

 

2 数据模型 

(1)数据的静态性和动态性

  数据库中数据具有静态性:数据基本结构,数据之间的联系

 如:一个张同学数据结点(就是一个数据记录对象),它的基本信息包括学号,姓名,性别等(静态的基本结构);所有学生在表的是线性顺序地存放的,每个学生最多有一个前驱,最多有一个后继. 如下四个数据对象的描述

 

 

 

 

   数据的动态性:就是指对数据库中数据能进行的操作以及操作规则。(不同类型的数据能施加的操作是不同的)

比如:要描述人(类的概念),定义人类时对应是定义数据的数据结构:ID,姓名,性别,身高等是静态参数,是用于描述对象的属性的。使用人类生成对象人如张三,张三对应数据概念,张三的ID,姓名,性别等值是属性值,是静态的。

张三,李四,王二在数据库是线性存放的;

对数据的输出,排序,查询等是动态操作功能.

 

数据模型:结构,数据关系,行为功能

(2)数据模型

1)基本概念

如:现实中,一张建筑图、设计的沙盘、汽车模型都是MODEL

计算机中的模型:是对事物,对象,完成过程等客观系统中有代表的特征的模拟和抽象 ----模型是对现实数据特征的抽象。

例:要开发一个图书管理软件,针对图文概念来建立模型。要描述一本书,抽象:图书(ISDN,书名,作者,出版社,价格,学科)

 

数据模型对现实世界客观事物抽象建立数据关系的模型(数据库中各表,及各表之间联系)

2)数据模型三要素

  • 数据结构:描述数据类型、内容;数据之间的联系针对数据库来说,数据模型分为层次型,网状型,关系型三大类
  • 数据操纵:是指对数据库中各种对象允许的操作功能集合,如对数据的增、删、查、改等
  • 数据的约束:泛指完整性规则集合,尽可能保证数据的正确性,有效性。

  C++为例:

     Class  aa{

        Private  int  a;

        Public  void  b()

        {

           …….

        }

}

  aa   x[100];   //形成一个线性表

说明:一个好的数据模型要满足几个条件:

  • 能真实地模拟现实(人脑中,逻辑结构)
  • 容易被人理解
  • 能在计算机上容易实现 (计算机中,物理结构)

常识:计算机中内存存放数据时只能提供线性结构,所有人概念上的树,图/网必须要转换为线性表才能在计算机中物理使用

把现实世界对象抽象成概念层次的模型(人的理解,分析用的),与具体的数据库管理系统,计算机技术关系不大;

把概念性模型转换为某个具体的数据库管理系统如SQLSERVER中能识别的模型就形成组织层次的模型

(3)概念层数据模型

1)基本概念

  概念层数据模型是指抽象现实系统中有应用价值的元素和关系,反映现实中有用价值的信息结构。用于对信息世界中的对象建模---属于抽象的第一步.

  它是面向人的理解。如何在纸张描述此模型?使用E-R图

2)实体-联系模型  E-R (entity-relationship)

  • 实体:是有公共性质并可以相互区分的现实对象的集合。

  如一个学生集合就是一实体如上面学生表; 西华所有课程也是一个实体,对应上面的课程表.

  实体是记录的集合,如在学生实体中,一个行(代表一个学生的完整数据)就是记录record

  • 属性:每个实体有多个列,每列就是属性,也叫字段field 。每列都有列名(字段名,如学号,姓名)--field

   理解:属性是对象的静态参数的描述,如张三的性别“男”,对应的类中成员变量的值概念

   属性分:主属性/priary key/PK ,非主属性,前者常用于标识每个不同记录

  • 联系 : 主指不同实体表的之间的联系。如人事表实体与工资表实体之间靠“工号”实现联系;

注:描述概念层模型时,使用E-R图的三个主要素是:实体,属性,联系

3)三种主要的实体之间的联系类型

(有多个表时,这些表之间有什么数据上的对应联系??此关系思维错,会导致数据库建立是错误的)

<1>一对一关系,1:1

   设A表中记录行是唯一的,在B中最多有一个(允许0个)记录能与A中数据对应。如:03号停职,暂时不考勤

 A人事表                    B今晚考勤表

 工号  姓名  ……           工号    是否迟到

01 Aaa                 02       1

02 Bbb                 04       1

03 Ccc                 01       0

04 Ddd                 01      1  不允许

                    05      1  不允许

又如:学生表和家庭情况表, 人事表与当月工资表

<2> 一对多关系,  1:n

  A实体表中记录唯一,在B中表可以有n个记录与a表对应(n>=0)

 学生表A                        选课表B

 学号  姓名 ….                   学号   课程号   成绩

01 Aaa                       01     kc01     78

02 Bbb                       02     kc02     76

03 Ccc                       03     kc01      88

04 Dddd                             04     kc01     89

05    eee                           04     kc02      78

说明:学生表中每个学生是唯一,选课表体现:一个学生可以选多门课,一人一门课程对应一个记录

<3>多对多关系, m:n (m,n>=0)

 A表和B表中相互都是1:n

 A学生表                    B课程表

 学号  姓名 ….             课程号  课程名  …..

01 Aaa                  kc01    计算机应用

02 Bbb                  kc02    数据库

03 Ccc

04 ddd

问:这两个表如何联系:它们是属于M:N,要通过”选课”动作生成第三个实全表”选课表”

   C选课表

  学号   课程表   。。。。。。。

01 kc01

02 kc02

01 kc02

03     kc01

  

(3)组织层数据模型

1) 层次数据模型

 

 

 

 

 

 

2) 网状数据模型

 

 

 

 

3)关系数据模型

 

 

数据库系统的结构

 

从数据库管理角度看:三级模式,是数据库系统的内部结构

 

从最纯用户角度看:数据库系统结构分为集中式、文件服务器结构、客户/服务器结构---其实这是一般用户从外部看数据库系统的角度

 

(1)模式:逻辑/概念数据库

 

模式也称为逻辑模式(Logic Schema),它是由数据库设计者综合所有的数据需求,从全局的角度对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图即全局视图.

 

定义模式时不仅要定义数据的逻辑结构(如数据的型、数据类型、取值范围等),而且要定义与数据有关的安全性、完整性要求,定义这些数据之间的联系。

 

 

 

 

(2) 外模式(External Schema):用户数据库

 

  外模式也称为子模式(Subschema)或用户模式(User Schema),是程序员和最终用户能看见和使用的局部数据的逻辑结构和特征的描述,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。

 

外模式完全按照用户对数据的需要、站在局部的角度进行设计的。由于一个数据库应用系统有多个应用,因此可以有多个外模式。由于外模式是面向程序员和最终用户的,因此又称为用户数据视图。另一方面,同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式

 

(3)内模式(Internal Schema):物理数据库

 

 内模式也称为存储模式(Storage Schema)或物理模式(Physical Schema),它是数据物理结构和存储方式的底层描述,包括记录的存储方式、索引组织方式、数据是否压缩和加密。

 

比内模式更接近物理存储和访问的那些软件机制,即文件系统,是操作系统的一部分。例如,从磁盘读数据或写数据到磁盘上。

 

一个DBMS(数据库管理系统)至少应该支持的主要功能

1 数据定义:建立数据库结构,表头structure,及维护

2 数据操纵:数据的增删查改(查叫query,其它增删改叫noquery)

3 优化和执行: 数据结构严谨,不冗余,执行效率高

4 数据安全和数据完整性控制:存储安全(加密),访问权限安全;数据完整性是数据符合要求,表之间的联系严谨。

5 数据备份和恢复,并发控制: 备份是防止数据丢失;并发控制是防止脏数据。

6 数据字典:开发软件之前制定数据需求分析,需求分析中的对关键字或功能加以说明。

7 性能  

posted @ 2022-05-17 17:18  Grit_L。  阅读(146)  评论(0编辑  收藏  举报