数据库系统概论---绪论

数据库系统概论

第一章 绪论

一、数据库系统概述

I、数据库的四个基本概念

1.数据(data):描述事物的符号记录称为数据。

  • 数据的种类:
    (1)狭义的:数字(number);
    (2)广义的例如文本(text)、图形( graph)、图像(image)、音频( audio)、视频(video)、学生的档案记录、货物的运输情况等;
    它们都可以经过数字化后存入计算机。
    - 数据的地位:
    数据是数据库中存储的基本对象。
  • 数据的表现形式还不能完全表达其内容,需要经过解释,数据和关于数据的解释是不可分的。数据的解释是指对数据含义的说明,数据的含义称为数据的语义,数据与其语义是不可分的。
  • 记录是计算机中表示和存储数据的一种格式或一种方法。

2.数据库(DataBase,DB):数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合。

  • 数据库特点:
    (1)数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度(redundancy)、较高的数据独立性(data independency)和易扩展性(scalability),并可为各种用户共享。
    (2)概括地讲,数据库数据具有永久存储、有组织和可共享三个基本特点。

3.数据库管理系统(DataBase Management System. DBMS):位于用户与操作系统之间的一层数据管理软件。数据库管理系统和操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统

  • 如何科学地组织和存储数据,如何高效地获取和维护数据,完成这个任务的是一个系统软件——数据库管理系统(数据库管理系统作用/用途)
  • 数据库管理系统主要功能
    (1)数据定义功能:
    数据库管理系统提供数据定义语言(Data Definition Language,DDL),用户通过它可以方便地对数据库中的数据对象的组成与结构进行定义。
    (2)数据组织、存储和管理
    数据库管理系统要分类组织、存储和管理各种数据,包括数据字典、用户数据、数据的存取路径等。要确定以何种文件结构和存取方式在存储级上组织这些数据,如何实现数据之间的联系。数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、hash查找、顺序查找等)来提高存取效率。
    (3)数据操纵功能
    数据库管理系统还提供数据操纵语言(Data Manipulation Language,DML),用户可以使用它操纵数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
    (4)数据库的事务管理和运行管理
    数据库在建立、运用和维护时由数据库管理系统统一管理和控制,以保证事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。
    (5)数据库的建立和维护功能
    数据库的建立和维护功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能通常是由一些实用程序或管理工具完成的。
    (6)其他功能
    其他功能包括数据库管理系统与网络中其他软件系统的通信功能,一个数据库管理系统与另一个数据库管理系统或文件系统的数据转换功能,异构数据库之间的互访和互操作功能等。

4.数据库系统(DataBase System, DBS):由数据库、数据库管理系统(及其应用开发工具)、应用程序和数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。

  • 该系统由数据库管理员这个专业人员来辅助完成存储、管理等一切功能。一般简称其为数据库。

II、数据库管理技术的产生和发展

1.什么是数据管理?
(1)数据库技术是应数据管理任务的需要而产生的。
(2)数据管理是指对数据进行分类、组织、编码、存储、检索和维护,它是是数据处理的中心问题。
(3)数据的处理是指对各种数据进行收集、存储、加工和传播的一系列活动的总和。
2.数据库管理技术发展动力?
(1)应用需求的推动
(2)计算机硬件发展
(3)计算机软件发展
3.数据管理技术的发展过程
(1)人工管理阶段(20世纪50年代中之前)
(2)文件系统阶段(20世纪50年代末–60年代中)
(3)数据库系统阶段(20世纪60年代末–现在)
总结:从文件系统到数据库系统标志着数据管理技术的飞跃。

III、数据库系统的特点

举例:实现学籍管理
用文件系统实现学籍管理缺点:程序员必须关注记录结构和不同文件中记录之间的联系,工作量大,编程复杂,开发速度慢
与文件管理相比,数据库系统的特点有以下几个方面:
(1)数据结构化
数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
数据结构化的几个要点:(加粗部分)
所谓“整体”结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向整个组织或企业; 不仅数据内部是结构化的,而且整体是结构化的,数据之间是具有联系的。 也就是说,不仅要考虑某个应用的数据结构,还要考虑整个组织的数据结构。
在描述数据时不仅要描述数据本身,还要描述数据之间的联系。在数据库系统中,记录的结构和记录之间的联系由数据库管理系统维护,从而减轻了程序员的工作量,提高了工作效率。
在数据库系统中,不仅数据是整体结构化的,而且数据存取数据的方式也很灵活,可以存取数据库中的某一个或一组数据项、一个记录或一组记录;数据的最小存取单位是数据项,且数据的记录可以变长而在文件系统中,数据的存取单位是记录,粒度不能细到数据项。
数据可用数据模型描述,无需应用程序定义
(2)数据的共享性高、冗余度低且易扩充
数据库系统从整体角度看待和描述数据,数据不再面向某个应用而是面向整个系统,因此数据可以被多个用户、多个应用共享使用。
数据共享的好处:

  • (1)可以大大减少数据冗余,节约存储空间。
  • (2)数据共享还能够避免数据之间的不相容性与不一致性
  • (3)使数据库系统弹性大,易于扩充,可以适应各种用户的要求

所谓数据的不一致性是指同一数据不同副本的值不一样。
(3)数据独立性高:
**数据独立性是借助数据库管理数据的一个显著优点,**它已成为数据库领域中一个常用术语和重要概念,包括数据的物理独立性和逻辑独立性。
物理独立性是指用户的应用程序与数据库中数据的物理存储是相互独立的。 也就是说,数据在数据库中怎样存储是由数据库管理系统管理的,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样 当数据的物理存储改变时应用程序不用改变。
逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。也就是说,数据的逻辑结构改变时用户程序也可以不变。
数据独立性是由数据库管理系统提供的
二级映像功能
来保证的。
数据与程序的独立把数据的定义从程序中分离出去,加上存取数据的方法又由数据库管理系统负责提供,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。
(4)数据由数据库管理系统统一管理和控制
数据库的共享将会带来数据库的安全隐患,而数据库的共享是并发的(concurrency)共享,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据,这又会带来不同用户间相互干扰的隐患。另外,数据库中数据的正确与一致也必须得到保障。为此,数据库管理系统还必须提供以下几方面的 数据控制功能

  • 数据的安全性(security)保护
    数据的安全性是指保护数据以防止不合法使用造成的数据泄密和破坏。 每个用户只能按规定对某些数据以某些方式进行使用和处理。
  • 数据的完整性(integrity)检查
    数据的完整性指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,并保证数据之间满足一定的关系。
  • 并发(concurrency)控制
    当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。(即对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果。)
  • 数据库恢复(recovery)
    计算机系统的硬件故障、软件故障、操作员的失误以及故意破坏也会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失。数据库管理系统必须具有将数据库从错误状态恢复到某一已知的正确状态(亦称为完整状态或一致状态)的功能,这就是数据库的恢复功能。

IV、数据库概念小结

1.数据库是长期存储在计算机内有组织、大量、共享的数据集合。
2.它可以供各种用户共享,具有最小冗余度和较高的数据独立性。
3.数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
4.数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又能简化应用程序的研制和维护,提高了数据的利用率和相容性,提高了决策的可靠性。

二、数据模型

  • 定义:数据模型(data model)也是一种模型,它是对现实世界数据特征的抽象。也就是说数据模型是用来描述数据、组织数据和对数据进行操作的。
  • 通俗地讲,数据模型就是现实世界的模拟。
  • 数据模型应满足三方面要求
    (1)能比较真实地模拟现实世界
    (2)容易为人所理解
    (3)便于在计算机上实现
  • 数据模型是数据库系统的核心和基础。各种机器上实现的数据库管理系统软件都是基于某种数据模型或者说是支持某种数据模型的。

I、两类数据模型

1.概念模型(conceptual model),也称信息模型,它是按用户的观点来对数据和信息建模,主要用于数据库设计。
2.逻辑模型和物理模型
逻辑模型主要包括层次模型(hicrarchical model)、网状模型(network model)、关系模型(relational model)、面向对象数据模型(object oriented data model)和对象关系数据模型(object relational data model)、半结构化数据模型(semistructured data model)等。 它是按计算机系统的观点对数据建模,主要用于数据库管理系统DBMS的实现。
物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法,或在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。物理模型的具体实现是数据库管理系统的任务,数据库设计人员要了解和选择物理模型,最终用户则不必考虑物理级的细节。
3.客观对象的抽象过程:—两步抽象
为了把现实世界中的具体事物抽象、组织为某一数据库管理系统支持的数据模型,人们常常首先将现实世界抽象为信息世界,然后将信息世界转换为机器世界。 也就是说,
(1)首先把现实世界中的客观对象抽象为某一种信息结构,这种信息结构并不依赖于具体的计算机系统,不是某一个数据库管理系统支持的数据模型,而是概念级的模型;
(2)然后再把概念模型转换为计算机上某一数据库管理系统支持的数据模型
在这里插入图片描述

II、概念模型

1.概念模型的用途
(1)概念模型用于信息世界的建模
(2)概念模型是现实世界到机器世界的一个中间层次
(3)概念模型是数据库设计的有力工具
(4)概念模型数据库设计人员和用户之间进行交流的语言
2.对概念模型的基本要求
(1)应该具有较强的语义表达能力,能够方便的、直接地表达应用中各种语义知识;
(2)应该简单、清晰、易于用户理解;
3.信息世界中的基本概念
(1)实体(entity)

客观存在并可相互区别的事物称为实体。
实体可以是具体的人、事、物,也可以是抽象的概念或联系;
(2)属性(attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
(3)码(key)
唯一标识实体的属性集称为码。
(4)实体型(entity type)
具有相同属性的实体必然具有共同的特征和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
(5)实体集(entity set)
同一类型实体的集合称为实体集。
(6)联系(relationship)
在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。
实体内部的联系通常是指组成实体的各属性之间的联系;
实体之间的联系通常是指不同实体集之间的联系。
实体之间的联系有一对一、一对多和多对多等多种类型。
3.将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计
概念模型的特点
(1)能真实、充分地反映现实世界,是现实世界的一个真实模型。
(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见。
(3)易于更改,当应用环境和应用要求改变时,容易对概念模型修改和扩充。
(4)易于向关系、网状、层次等各种数据模型转换
4.概念模型的一种表示方法:实体–联系方法
方法介绍:该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型
描述概念模型的工具:E-R模型
(1)两个实体型之间的联系一对一联系

  • 一对一联系(1:1)
    如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1∶1。
    例如,学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。
  • 一对多联系(1∶n)
    如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1∶n。
    例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。
  • 多对多联系(m∶n)
    如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m∶n。
    例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。
    在这里插入图片描述
    (2)两个以上的实体型之间的联系
    一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。

    对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的。
    在这里插入图片描述
    (3)单个实体型内的联系
    同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。

    例如,职工实体型内部具有领导与被领导的联系,即某一职工(干部)“领导”若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系。
    在这里插入图片描述
    联系的度:参与联系的实体型的数目
    2个实体型之间的联系度为2,也称为二元联系;
    3个实体型之间的联系度为3,称为三元联系;
    N个实体型之间的联系度为N,也称为N元联系

    (2)E-R图
    E-R图提供了表示实体型、属性和联系的方法:
    实体型:用矩形表示,矩形框内写明实体名。
    属性:用椭圆形表示,并用无向边将其与相应的实体型连接起来。
    联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n或m∶n)。
    联系可以具有属性

    在一对多的关系中,主动的一端先确定是1还是n;
    (3)实例练习
    例一:某个工厂物资管理的概念模型。物资管理涉及的实体有:
    仓库:属性有仓库号、面积、电话号码
    零件:属性有零件号、名称、规格、单价、描述
    供应商:属性有供应商号、姓名、地址、电话号码、账号
    项目:属性有项目号、预算、开工日期
    职工:属性有职工号、姓名、年龄、职称
    这些实体之间的联系如下:
    (1) 一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。
    (2) 一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之间是一对多的联系。
    (3) 职工之间具有领导与被领导关系。即仓库主任领导若干保管员,因此职工实体型中具有一对多的联系。
    (4) 供应商、项目和零件三者之间具有多对多的联系。即一 个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。
    解答:
    先写实体及其属性图
    在这里插入图片描述再写实体及其联系图
    在这里插入图片描述
    最后进行汇总写出完整的实体-联系图
    在这里插入图片描述
    例二: 设有商店和顾客两个实体,“商店”有属性:商店编号、商店名、地址、电话,“顾客”有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次去商店购物有一个消费金额和日期,而且规定每个顾客在每个商店里每天最多消费一次。画出E-R图,并注明属性和联系类型。
    解答:
    在这里插入图片描述
    例三:假设每个学生选修若干门课程,且每个学生每选一门课只有一个成绩,每个教师只担任一门课的教学,一门课由若干教师任教。“学生”有属性:学号、姓名、地址、年龄、性别。“教师”有属性:职工号、教师姓名、职称,“课程”有属性:课程号、课程名。画出E-R图,并注明属性和联系类型。
    解答:
    在这里插入图片描述
    例四:某研究所有多名科研人员,每一个科研人员只属于一个研究所,研究所有多个科研项目,每个科研项目有多名科研人员参加,每个科研人员可以参加多个科研项目。科研人员参加项目要统计工作量。“研究所”有属性:编号,名称、地址,“科研人员”有属性:职工号、姓名、性别、年龄,职称。“科研项目”有属性:项目号、项目名、经费。画出E-R图,并注明属性和联系类型。
    解答:
    在这里插入图片描述例五: 工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:
    (1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和电话。
    (2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种。
    (3)一个车间生产多种产品,产品有产品号和价格。
    (4)一个车间生产多种零件,一个零件也可能为多个车间制造。零件有零件号、重量和价格。
    (5)一个产品由多种零件组成,一种零件也可装配出多种产品。
    (6)产品与零件均存入仓库中。
    (7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
    根据工厂的情况,用E-R图画出概念模型,并注联系类型。
    解答:
    在这里插入图片描述

III、数据模型的组成要素

一般地讲,数据模型是严格定义的一组概念的集合。这些概念精确地描述了系统的静态特性、动态特性和完整性约束条件(integrity constraints)。因此数据模型通常由数据结构、数据操作和数据的完整性约束条件三部分组成。
1.数据结构
数据结构描述数据库的组成对象以及对象之间的联系。

数据结构描述的内容有两类:
**一类是与对象的类型、内容、性质有关的,**如网状模型中的数据项、记录,关系模型中的域、属性、关系等;
**一类是与数据之间联系有关的对象,**如网状模型中的系型( set type)。
**数据结构是刻画一个数据模型性质最重要的方面。**因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。
总之,数据结构是所描述的对象类型的集合,是对系统静态特性的描述。
2.数据操作
数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。
数据操作的类型:
查询和更新(包括插入、删除、修改)两大类操作。
数据模型对操作的定义
(1)操作的确切含义
(2)操作符号
(3)操作规则(如优先级)
(4)实现操作的语言。
数据操作是对系统动态特性的描述。
3.数据的完整性约束条件
数据的完整性约束条件是一组完整性规则。
(1)完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。
(2)数据模型应该反映和规定其必须遵守的基本的和通用的完整性约束条件。
例如,在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。
此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在某大学的数据库中规定学生成绩如果有6门以上不及格将不能授予学士学位,教授的退休年龄是65周岁,男职工的退休年龄是60周岁,女职工的退休年龄是55周岁等。

IV、常用的数据模型

1.层次模型(Hierarchical Model)
2.网状模型(Network Model)
3.关系模型(Relational Model))
4.面向对象数据模型(Object Oriented Data Model)
5.对象关系数据模型(Object Relational Data Model)
6.半结构化数据模型(Semistruture Data Model)
其中层次模型和网状模型统称为格式化模型。

格式化模型的数据库系统在20世纪70年代至80年代初非常流行,在数据库系统产品中占据了主导地位。层次数据库系统和网状数据库系统在使用和实现上都要涉及数据库物理层的复杂结构,现在已逐渐被关系模型的数据库系统取代。但在美国及欧洲的一些国家里,由于早期开发的应用系统都是基于层次数据库或网状数据库系统的,因此目前仍有一些层次数据库系统或网状数据库系统在继续使用。
20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等方面都产生了深远的影响,也促进数据库中面向对象数据模型的研究和发展。许多关系数据库厂商为了支持面向对象模型,对关系模型做了扩展,从而产生了对象关系数据模型。
随着Internet的迅速发展,Web上各种半结构化、非结构化数据源已经成为重要的信息来源,产生了以XML为代表的半结构化数据模型和非结构化数据模型。
数据结构、数据操作和数据完整性约束条件这三个方面的内容完整地描述了一个数据模型,其中数据结构是刻画模型性质的最基本的方面。
注意:这里讲的数据模型都是逻辑上的,也就是说是用户眼中看到的数据范围。同时它们又都是能用某种语言描述,使计算机系统能够理解,被数据库管理系统支持的数据视图。这些数据模型将以一定的方式存储于数据库系统中,这是数据库管理系统的功能,是数据库管理系统中的物理存储模型。
在格式化模型中实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。
在格式化模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间
的一对多(包括一对一)的联系。
如图:
在这里插入图片描述

V、层次模型

VI、网状模型

VII、关系模型

三、数据库系统的结构

四、数据库系统的组成

课后习题

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值