数据库系统概述(Data Model、DBMS、DBS、RDBS、Structured Query Language)

 

数据Data

描述事物的符号记录成为数据.

数据是数据库中存储的基本对象.   除了基本的数字之外、像图书的名称、价格、作者都可以称为数据.

 

将多种数据记录列成一张表.通过数据表管理数据.

每一行的数据成为记录(recorder),每一列的内容叫做字段(列field)

每一列都有自己的数据类型.

数据库Database

DB

数据库是存放数据的仓库,所有的数据在计算机存储设备上保存,而且所有保存的数据会按照一定的格式进行保存.

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

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共存,所以数据库具有永久存储、有组织和可共享的三个基本特点.

数据库管理系统

Database Management System

DBMS

科学地组织和存储数据、可以高效地获取和维护数据

数据库管理系统操作系统一样是计算机的基础软件,也是一个大型复杂的软件系统,主要功能包括以下几个方面:

数据操作功能,数据库的事务管理和运行管理,数据库定义功能,数据组织、存储和管理,数据库的建立和维护功能.

数据库的管理系统一定要建立在操作系统上,因为数据库一定需要磁盘控制.

数据库系统

Database System

DBS

数据库系统是一个整体数据运行的基础.

所有的数据库都需要通过开发工具编写的应用程序进行数据的访问,而数据平常需要由DBA进行维护.

数据库系统是指在计算机系统中引入新数据后的系统,

一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(负责数据库的建立、使用、维护)构成

 

数据管理的发展

 

 

人工管理阶段

文件系统阶段

数据库系统阶段

背景

 

 

 

应用背景

科学计算

科学计算、数据管理

大规模数据管理

硬件背景

无直接存取存储设备

磁盘、磁带

大容量磁盘、磁盘阵列

软件背景

没有操作系统

有文件系统

有数据库管理系统

处理方式

批处理

联机实时处理、批处理

联机实时处理、分布处理、批处理

特点

 

 

 

 

 

数据的管理者

用户(程序员)

文件系统

数据库管理系统

数据面向的对象

某一应用程序

某一应用

现实世界(一个部门、企业、跨国组织等)

数据的共享程度

无共享,冗余度极大

共享性差、冗余度大

共享性高、冗余度小

数据的独立性

不独立,完全依赖于程序

独立性差

具有高度的物理独立性和一定的逻辑独立性

数据的结构化

无结构

记录内有结构、整体无结构

整体结构化,用数据模型描述

数据控制能力

应用程序自己控制

应用程序自己控制

由数据库管理系统提供数据安全性、完整性、并发控制和恢复能力

数据库系统管理数据要比文件系统更加方便.

 

数据库系统阶段的特征——整体结构化,用数据模型描述

  • 数据库系统可以实现结构化的数据保存,比起文件系统而言,数据库中所有保存的数据都会按照一个统一的标准形式操作,而所有的数据可以按照不同的性质保存在不同的数据表之中.

 

除了数据结构化特征外,还包含了数据的共享性,数据的冗余度低,而且方便扩充.

在进行数据库的管理过程中,数据的独立性很高,所有的数据都是通过DBMS进行操作,所有的数据库肯定要通过程序进行访问,程序必须经过DBMS之后才能访问数据库中的数据

DBMS是统一管理和控制数据.安全性保护、完整性检查、并发操作、数据恢复.

数据库中的数据是长期存储的,有组织存储的,为不同的用户提供数据的操作,保证了数据的完整性、安全性.

 

 

数据模型(Data Model

数据模型是对客观世界中的某些事物的特征数据抽象和模拟,是严格定义的一组概念,即数据模型是用来描述、组织数据并对数据进行操作的,数据模型是整个数据库系统的核心.

 

在技能型模型建立的时候应该满足三个方面要求:

比较真实地模拟现实世界;

容易被人所理解;

便于计算机上实现;

 

根据模型应用的不同目的,将模型分为2类:

两类数据模型:概念模型、物理模型

主要是按照计算机系统的观点对数据建模;

 

第二类的模型是对数据底层的最基本的抽象,描述的是一些存储有关的内容.

 

抽象流程:现实世界->抽象出概念模型-->逻辑模型的实现.

 

概念模型

概念模型只是做了一个简单的图形,具体形式还是要根据不同的工具来讲.

信息模型,相互咬用于数据库的设计.

概念模型是对现实世界的抽象,而且概念模型更多是给非技术人员看的.

概念模型的概念:

在概念模型之中,主要设计的基本概念有:

实体Entity

客观存在并可相互区别的事物称为实体。

实体可以是具体的人、事、物,也可以是抽象的概念或关系.

(学生,工人等)

属性Attribute

实体所具有的某一特性成为属性。

一个实体可以由若干个属性来描述.

(学生的姓名,身高,工人工资等)

Key

码也称为关键字Key,它可以唯一标识一个实体.

(身份证编号)

Domain

属性的取值范围称为属性的域Domain

实体型Entity Type

具有相同的实体必然具有共同的特征和性质。

用实体名及其属性名集合来抽象和刻画同类实体.

实体集Entity Set

同一类型的实体集合称为实体集.

关系Relationship

 

 

两个实体之间的联系(关系):

一对一(11

【实体型A1——【联系名】1——【实体集B

如:一个人账户有一个密码

一对多(1n

【实体型A1——【联系名】n——【实体集B

如:一个停车场有多辆汽车,一碗米饭有多个米粒,一个部门有多个雇员.

多对多(m:n)

【实体型Am——【联系名】n——【实体集B

多对多可以理解为两个一对多:

如:一个学生可以参加多个课程;一个课程可以有多个学生参加.

两个以上实体之间的联系:

在一个项目开发之中,可能会同时使用多项技术,并且由不同的开发部门同时进行,在这种关系中会存在三个实体:技术信息、部门信息、项目信息,此时就会存在以下两中种关系:

〖多对多关联〗多个部门可以同时进行多个项目的开发;

〖多对多关联〗多个项目要使用到多种项目

单个实体型的联系:

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如:公司之中会存在许多的雇员,每一个雇员都会有一个领导,而公司的最大领导没有领导,这个时候一个雇员的实体被另外一个雇员直接领导,因此这也是一种一对多的联系。

物理模型

物理模型是开发中使用较多的模型,包括对数据库的设计都是通过物理模型进行的.

逻辑模型和物理模型,包括层次模型、网状模型、关系模型、面向对象模型、对象关系模型.

层次模型(Hierarchical Model

      • 层次模型是数据库系统中最早出现的数据模型,层次数据库采用层次模型作为数据的组织方式。层次数据库系统的典型代表是IBM公司的IMSInformation Management System)数据库管理系统,这是1968IBM公司推出的第一个大型的商用数据库管理系统,曾经得到广泛的使用。在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型:
        • 有且只有一个节点没有双亲节点,这个节点称为根节点;

根节点以外的其他节点有且只有一个双亲节点

 

网状数据模型(Network Model

    • 在现实世界中事物之间的联系更多的是非层次的关系,所以此时就无法使用层次模型表示非树型结构,而通过网状模型则可以克服这一弊病。
    • 网状数据库系统采用网状模型作为数据的组织方式。
    • 与层次模型一样,网状模型中每个节点表示一个纪录类型(实体),每个纪录类型可包含若干个字段(实体的属性),节点间的连线表示纪录类型(实体)之间一对多的父子联系。

 

重要的数据模型:

关系数据模型

关系模型是一种基于的数据模型.

关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于E.F.Codd的杰出工作,他于1981年获得ACM图灵奖。

关系模型为人们提供了单一的一种描述数据的方法:一个称之为关系(Relation)的二维表

关系模型术语

属性

关系的列命名为属性(attribute)

模式

关系名和其树型集合的组合称为这个关系的模式(schema)

元组

关系中除含有树型名所在的行以外的其他行称作元组(tuple)

可以理解为一行数据.

关系模型要求元组的每个分量具有原子性。

半结构化数据模型

半结构化数据模型类似树或图,而不是表.

 

数据模型的组成要素:

数据模型是严格定义的一组概念的集合,主要是用于描述数据或信息的标记。

因此数据模型通常由数据结构、数据操作完整性约束三部分组成.

数据结构

Structure Of The Data

 

数据结构描述数据库的组成对象以及对象之间的联系,可以描述出一个客观事物的类型、内容有关的数据项,并且可以表示出不同事物之间的联系.

数据操作

Operation On The Data

数据操作是指对数据库中的一个或多个对象或数据记录运行执行的操作的集合.

数据库的主要操作主要是两类:查询和更新(增加、修改、删除)

在数据模型中必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言(一般为SQL

完整性约束

为了保证数据库中所保存的数据是有正确的意义,在数据库中专门为所有操作的数据提供一组完整性的规则,所有的数据必须符合这些既定的规则才可以操作。

 

 

SQL概述

  • SQLStructured Query Language),即结构化查询语句,是关系数据库的标准语言,SQL是一个通用的、功能极强达观系数据库语言。
  • SQL是一个标准,NOSQL目前被翻译为Not Only SQL,其中代表为MongoDB.
  • SQL语言有以下几个部分:

数据操作语言

Data Manipulation Language

用于检索或者修改数据;

数据定义语言

Data Definition Language

用于定义数据的结构,创建、修改或者删除数据库对象;

数据控制语言

DCLData Control Language

用于定义数据库用户的权限;

完整性

Integrity

SQL DDL包括定义完整性约束的命令,保存在数据库中的数据更新时必须满足所定义的完整性要求,否则无法更新;

视图定义

View Definition

SQL DDL包括定义视图的命令;

嵌入式SQL和动态SQL

Embedded SQL AND Dynamic SQL

主要定义如何将SQL嵌入到通用边城语言,如:CC++Java中;

事务控制

Transaction Control

定义了包含事务开始和结束的相关命令。

 

Retrieving data using the SQL Select Statement

使用SQL SELECT语句检索数据

 

SQL is a comprehensive database language.

SQL是一种综合数据库语言.

 

SQL, pronounced Sequel or simply S-Q-L, is a computer programming language used for querying relational databases following a nonprocedural approach.

SQL是用于查询关系数据库在非过程方法的计算机程序设计语言.

 

When you extract information from a database using SQL, this is termed querying the database.

当你使用SQL从数据库中提取信息时,这称为查询数据库.

 

A relational database is implemented through the use of a Relational Database Management System (RDBMS).

关系数据库是通过使用关系数据库管理系统RDBMS来实现.

 

An RDBMS performs all the basic functions of the DBMS software mentioned above along with a multitude of other functions that make the relational model easier to understand and to implement.

RDBMS执行上面提到的DBMS软件所有基本功能,还有许多其他功能,使关系模型更易于理解和实现.

 

RDBMS users manipulate data through the use of a special data manipulation language.

RDBMS用户通过使用特殊数据操作语言来操作数据.

 

Database structures are defined through the use of a data definition language.

数据库结构是通过使用数据定义语言定义的.

 

 The commands that system users execute in order to store and retrieve data can be entered at a terminal with an RDBMS interface by typing the commands, or entered through use of some type of graphical interface. The DBMS then processes the commands.

系统用户执行存储和检索数据的命令可以通过键入命令或在某种类型的同性界面中输入,在具有RDBMS借口的终端中输入.DBMS然后处理命令.

 

 

About Relational Databases

关于关系数据库

Every organization has information that it must store and manage to meet its requirements.

每个组织都有其必须存储和管理的信息,以满足其需求。

For example, a corporation must collect and maintain human resources records for its employees.

如公司必须收集和维护其雇员的人力资源记录.

This information must be available to those who need it.

这些信息对需要它的人必须是可用的.

An information system is a formal system for storing and processing information.

信息系统是一个正式的系统,用于存储和处理信息.

An information system could be a set of cardboard boxes containing manila folders along with rules for how to store and retrieve the folders.

信息系统可能是一组文件柜,其中包含许多文件夹,以及如何存储和检索文件夹的规则.

However, most companies today use a database to automate their information systems.

但是,大多数公司现在使用数据库来自动化其信息系统。

A database is an organized collection of information treated as a unit.

数据库是信息的一个有组织的稽核,被作为一个整理来看待。

The purpose of a database is to collect, store, and retrieve related information for use by database applications.

数据库的目的是收集、存储、和检索相关的信息,以供数据库应用程序使用.

 

关系数据库中的术语:

database management system (DBMS)(数据库管理系统)

1、A database management system (DBMS) is software that controls the storage, organization, and retrieval of data. Typically, a DBMS has the following elements:

数据库管理系统是一种软件,用于控制对数据的存储、组织、检索。通常,一个DBMS具有以下元素

Kernel code(内核代码)

This code manages memory and storage for the DBMS.

此代码为DBMS管理内存和存储.

Repository of metadata(元数据的存储库)

This repository is usually called a data dictionary.

此存储库通常成为数据字典.

Query language(查询语言)

This language enables applications to access the data.

此语言使应用程序能够访问数据

2、The first generation of database management systems included the following types:

        第一代的数据库管理系统包括以下类型:

Hierarchical(层次型)

      • A hierarchical database organizes data in a tree structure. Each parent record has one or more child records, similar to the structure of a file system.

层次数据库把数据组织在树状结构中。每个父记录有一个或多个子记录,类似于文件系统的结构.

Network(网络型)

A network database is similar to a hierarchical database, except records have a many-to-many rather than a one-to-many relationship.

网络数据库类似于层次数据库,但有一个区别,记录之间是多对多的关系,不是一对多的关系.

3、The preceding database management systems stored data in rigid, predetermined relationships. Because no data definition language existed, changing the structure of the data was difficult. Also, these systems lacked a simple query language, which hindered application development.

以上数据库管理系统按照严格的,预定义的关系存储数据。由于不存在任何数据定义语言,更改数据结构是很困难的。同时,这些系统缺乏一种简单的查询语言,则阻碍了应用程序的开发.

database application(数据库应用程序)

A database application is a software program that interacts with a database to access and manipulate data.

    数据库应用程序是一个软件程序,它与数据库进行交互,以访问和操作其数据.

Relational Model(关系模型)

1、In his seminal 1970 paper "A Relational Model of Data for Large Shared Data Banks,"E. F. Codd defined a relational model based on mathematical set theory. Today, the most widely accepted database model is the relational model.

E. F. Codd 1970年发表的论文《大型共享数据库数据的关系模型》中,定义了一个基于数学集合理论关系模型.目前最广泛接受的数据库模型就是关系模型.

 

2、A relational database is a database that conforms to the relational model. The relational model has the following major aspects:

关系数据库是一个符合关系模型的数据库.关系模型有以下主要方面:

Structures(结构)

Well-defined objects store or access the data of a database.

结构定义良好的对象,用于存储或访问数据库的数据.

Operations(操作)

Clearly defined actions enable applications to manipulate the data and structures of a database.

清楚定义的操作,使应用程序可以处理数据库中的数据和结构.

Integrity rules(完整性规则)

Integrity rules govern operations on the data and structures of a database.

完整性规则用于管理在数据库的数据和结构上的操作.

relational database(关系数据库)

A relational database stores data in a set of simple relations.

关系数据库将数据存储在一组简单的关系中。

A relational database is a database that stores data in relations (tables).

关系数据库是一个将数据存储在关系表中的数据库.

For example, a relational database could store information about company employees in an employee table, a department table, and a salary table.

例如,关系数据库可以在一个雇员表、部门表和薪金表中存储有关公司雇员的信息.

二维表

就是一张表,比如我们打开excel,这里可以粗略的看成一个表的结构吧。所以说,关系的逻辑结构就是一个二维表

A table is a two-dimensional representation of a relation in the form of rows (tuples) and columns (attributes).

表是一个关系的二维表示,关系由行(元组)和列(属性)的形式构成.

Each row in a table has the same set of columns.

表中的每一行具有相同的列集.

关系数据库中,所有的数据都是通过表来进行存储的,可以说如果没有表,数据就无法进行存储和表示.

关系(Relation)

对应我们平时看见的一张表。

A relation is a set of tuples.

关系是一个元组的集合

关系由行(元组)和列(属性)的形式构成.

-元组(Tuple)

一个二维表里的一行

A tuple is an unordered set of attribute values.

一个元组是一些属性值的无序的集合。

每一行表示一个记录,代表一个物理实体.

-属性(Attribute)

表中的每一列表示为关系的一个属性,每列的名字就是一个属性名.

关系的完整性

关系模型的完整性规则是对数据的约束。

关系模型提供3类完整性规则:

实体完整性(关系的不变性)

规定关系的,数据库表格中的主键不能取空值,当属性由属性组(不止一个属性)组成时,属性组中的属性均不能为空值.

参照完整性(关系的不变性)

关系模型中实体及实体之间的联系都是用关系来描述的。

参照完整性是相关联的2表之间的约束。

就是从表中每条记录外键的值必须是主表中存在的,

因此,如果2表之间建立了关联关系,则对一个关系进行的操作要影响到另一个表中的记录.

用户定义的完整性(根据需要遵循)

实体完整性和参照系完整是每一个关系数据库都必须要支持的完整性。

自定义是根据需要来定义的.

外键

如果有属性关键字在一个表中是主关键字,那么这个属性关键字被称为另一个表的外键。外键表示了两个关系之间的联系

域(domain)

属性的取值范围,比如一个属性年龄,那么这个年龄的取值范围在0到130,这就是一个域。

关键字或码(key)

也就是我们常说的主键,它能唯一的确定一个元组,也就是能唯一的确定一行。比如 学生号,那么它能确定学生姓名等等。

关系模式(Relation Schema)

对关系的描述,比如关系名(属性1,属性2,属性3...)

Relational Database Management System (RDBMS)

关系数据库管理系统

The relational model is the basis for a relational database management system (RDBMS).

关系模型是关系数据库管理系统的基础.

Essentially, an RDBMS moves data into a database, stores the data, and retrieves it so that it can be manipulated by applications. An RDBMS distinguishes between the following types of operations:

实际上,RDBMS数据移入数据库、在数据库中存储和检索数据,以便应用程序能对其进行操作.

RDBM区分为如下2种类型的操作:

Logical operations

(逻辑操作)

In this case, an application specifies what content is required.

在这种情况下,由应用程序指定需要哪些内容.

For example, an application requests an employee name or adds an employee record to a table.

如应用程序请求一个雇员的姓名,或向表中添加一个雇员记录.

Physical operations(物理操作)

In this case, the RDBMS determines how things should be done and carries out the operation.

 在这种情况下,RDBMS确定如何操作,并执行该操作。

For example, after an application queries a table, the database may use an index to find the requested rows, read the data into memory, and perform many other steps before returning a result to the user.

如应用程序对表发出查询后,数据库可能会使用索引来查找请求的行、将数据读入内存,并执行许多其他步骤,最后向用户返回一个结果.

The RDBMS stores and retrieves data so that physical operations are transparent to database applications.

RDMBS存储和检索数据,因此物理操作对于数据库应用程序是透明的.

object-relational database management system (ORDBMS)

对象-关系数据库管理系统

An RDBMS that implements object-oriented features such as user-defined types, inheritance, and polymorphism is called an object-relational database management system (ORDBMS).

对象-关系数据库管理系统是一个实现了面向对象特征(如用户定义类型、继承和多态性)的RDBMS.

Oracle Database

Oracle Database is an RDBMS.

Oracle数据库是一个RDBMS。

Oracle Database has extended the relational model to an object-relational model, making it possible to store complex business models in a relational database.

Oracle数据库已经将关系模型扩展为对象-关系模型,使其可以在关系数据库中存储复杂的业务模型.

posted @ 2017-06-20 15:20  寻香径  阅读(3003)  评论(0编辑  收藏  举报