数据库概述

数据库概述

引言

在数据库中有四个重要的概念,分别是数据(Data)、数据库(DataBase)、数据库管理系统(Database Management System,DBMS)、数据库系统(DataBase System,DBS)。

•数据是描述事物的符号记录。

•学生的学号、姓名、年龄、照片等档案记录、货物的运输情况等都是数据。

•数据的表示形式多样,可以是文字、数字、图形、图像、声音等,它们都可以经过数字化后存入计算机。

第二个重要的概念是数据库。

数据库指长期储存在计算机内、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享。

第三个概念数据库管理系统。

数据库管理系统指位于用户与操作系统之间的一层数据管理软件。

数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制。数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。

第四个概念数据库系统。

数据库系统指在计算机系统中引入数据库后构成的系统。一般由数据库,数据库管理系统(及其开发工具),应用系统,数据库管理员(DataBase Administrator,简称DBA)和用户五部分构成。

数据库是数据管理的技术。从计算机发明以来,数据的管理都与计算机相关。数据管理是指如何对数据分类、组织、编码、储存、检索和维护,是数据处理的中心问题。主要分为三个阶段。

1.人工管理阶段

2.文件系统阶段

3.数据库系统阶段

第一个阶段是人工管理阶段,出现在20世纪50年代中期以前。计算机刚刚发明,主要用于科学计算,以提高人们的计算速度。因此,计算机不具有存储功能。硬件状况是,外存只有纸带、卡片、磁带,没有磁盘等直接存取的存储设备。软件状况是,没有操作系统,没有管理数据的软件;数据处理方式是批处理。 所以,数据的管理以人工为主。

第二个阶段是文件管理阶段,出现在20世纪50年代后期到60年代中期。计算机有了明显的进步,计算机不仅用于科学计算,而且还大量用于管理。硬件上已有了磁盘、磁鼓等直接存取的存储设备。软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统;处理方式上不仅有了文件批处理,而且能够联机实时处理。数据可以存储在计算机中,以文件的形式进行存储。所以称为文件管理阶段。

第三个阶段是数据库管理阶段,出现在20世纪60年代后期以来。计算机用于管理的规模更为庞大,应用越来越广泛,数据量急剧增长。硬件价格不断下降,软件价格不断上升。在处理方式上,更多的要求联机实时处理,并开始提出和考虑分布式处理。这时已经有了管理数据的专门的软件,数据的管理更加专业。数据库的管理也出现了三种不同的阶段:60年代末出现了第一代数据库------层次数据库、网状数据库;70年代出现了第二代数据库------关系数据库。

数据模型

数据模型就是对现实世界的模拟。 数据结构、数据操作和完整性约束通常被称为数据模型的三要素。

1.数据结构

数据结构用于描述系统的静态特性,是所研究的对象类型的集合。数据模型按其数据结构的不同可以分为层次模型、网状模型和关系模型。

2.数据操作

数据操作用于描述系统的动态特性,是指对数据库中各种对象的实例允许执行的操作的集合。

3.完整性约束

数据的完整性约束是一组完整性规则的集合。

根据应用的不同目的,数据模型可以有不同的划分方式。从用户的观点对数据和信息进行建模,可以分为概念模型和数据模型。按计算机的观点对数据和信息进行建模,数据模型可以进一步分为层次模型、网状模型和关系模型。

1.概念模型

概念模型是现实世界到机器世界的一个中间层次。

现实世界的事物反映到人的脑子中,人们把这些事物抽象为一种既不依赖于具体的计算机系统又不为某一DBMS支持的概念模型,然后再把概念模型转换为计算机上某一DBMS支持的数据模型。

概念模型中常用的几个重要概念:

•实体:客观存在并相互区别的事物及其事物之间的联系。

•属性:实体所具有的某一特性。

•码:惟一标识实体的属性集。

•域:属性的取值范围。

•实体型:用实体名及其属性名集合来抽象和刻画的同类实体。

•实体集:同型实体的集合称为实体集。例如:全体学生就是一个实体集。

•联系:实体与实体之间以及实体与组成它的各属性间的关系。

•联系三种类型:一对一的联系(1:1),

• 一对多的联系(1:n),

• 多对多的联系(m:n)。

概念模型的表示方法:

实体---联系方法(E-R图)。

E-R图提供了表示实体型、属性和联系的方法。

(1)实体:用矩形表示,矩形框内写明实体名。如学生实体、课程实体分别表示如图所示。

(2)属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。如学生实体的属性包括学号、姓名、性别等。

(3)联系

用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来。同时在无向边旁标上联系的类型(1:1、1:n或m:n)。

若实体之间的联系也有属性,则也要用无向边将属性与相应联系连接起来。

例如:一个班级只有一个班长,班长与班级之间是一对一的关系。一个班长管理多名学生,班长和学生之间是一对多的关系。一名学生可以选择多门课程,一门课程可供多名学生选择,课程与学生之间是多对多的关系。

对于数据模型来说,三种主要的数据模型:

1.层次模型:层次模型用树形结构表示各类实体以及实体间的联系。

2.网状模型:若用图形表示,网状模型像是一个网络。

3.关系模型:关系模型的逻辑机构是一张二维表,它由行和列组成。通常在关系模型中将表称为关系。

美国IBM公司的研究员E.F.Codd于1970年发表了题为"大型共享系统的关系数据库的关系模型"的论文,文中首次提出了数据库系统的关系模型。

数据库系统的结构

数据库系统具有三级模式结构两级映射来保证数据库系统的物理独立性和逻辑独立性。三级模式结构分别是:外模式、模式和内模式。

外模式,也称子模式或用户模式,它是对数据库用户看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

一个数据库可以有多个外模式。

模式,也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公用数据视图。一个数据库只有一个模式。

内模式,也称存储模式,它是对数据物理和存储结构的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。

数据库管理系统的功能

(1)数据定义:数据定义包括定义构成数据库结构外模式、模式和内模式,定义各个外模式与模式之间的映射,定义模式与内模式之间的映射,定义有关的约束条件等。

(2)数据操纵:数据操纵包括对数据库中数据的检索、插入、修改和删除等基本操作。

(3)数据库运行管理 :对数据库的运行进行管理是DBMS运行时的核心部分,包括对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护等。

(4)数据组织、存储和管理 :数据库中需要存放多种数据,如数据字典、用户数据、存取路径等。DBMS负责分门别类地组织、存储和管理这些数据,确定以何种文件结构和存取方式物理地组织这些数据,如何实现数据之间的联系,以便提高存储空间利用率以及提高随机查找、顺序查找、增、删、改等操作的时间效率。

(5)数据库的建立和维护:建立数据库包括数据库初始数据的输入与数据转换等。维护数据库包括数据库的转储与恢复、数据库的重组织与重构造、性能的监视与分析等。

(6)数据通信接口:DBMS需要提供与其他软件系统进行通信的功能。

数据库的设计

大型数据库设计是一项庞大的工程,其开发周期长、耗资多。它要求数据库设计人员既要具有坚实的数据库知识,又要充分了解实际应用对象。所以可以说数据库设计是一项涉及多学科的综合性技术。设计出一个性能较好的数据库系统并不是一件简单的工作。

数据库设计的任务是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。

数据库设计应包含两方面的内容:

一是结构设计,也就是设计数据库框架或数据库结构;

二是行为设计,即设计应用程序、事务处理等。

数据库的设计主要经过需求分析、概念结构设计、逻辑结构设计、数据库物理设计、数据库的实施、数据库的运行和维护。

(1)需求分析:进行数据库设计首先必须准确了解和分析用户需求。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。

(2)概念结构设计:准确抽象出现实世界的需求后,下一步应该考虑如何实现用户的这些需求。在将现实世界需求转化为机器世界的模型之前,要先以一种独立于具体数据库管理系统的逻辑描述方法来描述数据库的逻辑结构,即设计数据库的概念结构。

(3)逻辑结构设计是将抽象的概念结构转换为所选用的DBMS支持的数据模型,并对其进行优化。

(4)数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。

(5)数据库的实施:在数据库实施阶段,设计人员运用DBMS提供的数据语言及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制并调试应用程序,组织数据入库,并进行试运行。

(6)数据库的运行和维护:数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改

相关推荐
what丶k2 小时前
Java连接人大金仓数据库(KingbaseES)全指南:从环境搭建到实战优化
java·开发语言·数据库
kida_yuan2 小时前
【Oracle】Ubuntu 部署 Oracle 10g 的完整实战复盘
数据库·ubuntu·oracle
霖霖总总2 小时前
[小技巧44]MySQL Purge 线程详解:作用、机制与性能优化
数据库·mysql
菜鸡上道2 小时前
MySQL 查询优化全解析:从原理到实战
数据库·mysql
weixin_420947642 小时前
mysql查询关联数据中同时关联了多个业务的数据
数据库·mysql
偷星星的贼112 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
Dolphin_Home2 小时前
数据库报错:1138 - Invalid use of NULL value 解决方案
数据库·sql·mysql
活波青年2 小时前
Mysql 常用配置
数据库·mysql
小北方城市网3 小时前
JVM 调优实战指南:从 GC 频繁到性能稳定
jvm·数据库·spring boot·后端·mysql·mybatis