数据库系统概述(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类:
两类数据模型:概念模型、物理模型
主要是按照计算机系统的观点对数据建模;
第二类的模型是对数据底层的最基本的抽象,描述的是一些存储有关的内容.
抽象流程:现实世界->抽象出概念模型-->逻辑模型的实现.
概念模型 |
概念模型只是做了一个简单的图形,具体形式还是要根据不同的工具来讲. 信息模型,相互咬用于数据库的设计. 概念模型是对现实世界的抽象,而且概念模型更多是给非技术人员看的. 概念模型的概念: 在概念模型之中,主要设计的基本概念有:
两个实体之间的联系(关系):
两个以上实体之间的联系: 在一个项目开发之中,可能会同时使用多项技术,并且由不同的开发部门同时进行,在这种关系中会存在三个实体:技术信息、部门信息、项目信息,此时就会存在以下两中种关系: 〖多对多关联〗多个部门可以同时进行多个项目的开发; 〖多对多关联〗多个项目要使用到多种项目 单个实体型的联系: 同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如:公司之中会存在许多的雇员,每一个雇员都会有一个领导,而公司的最大领导没有领导,这个时候一个雇员的实体被另外一个雇员直接领导,因此这也是一种一对多的联系。 |
||||||||||||||||||||
物理模型 |
物理模型是开发中使用较多的模型,包括对数据库的设计都是通过物理模型进行的. 逻辑模型和物理模型,包括层次模型、网状模型、关系模型、面向对象模型、对象关系模型.
|
重要的数据模型:
关系数据模型 |
关系模型是一种基于表的数据模型. 关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于E.F.Codd的杰出工作,他于1981年获得ACM图灵奖。 关系模型为人们提供了单一的一种描述数据的方法:一个称之为关系(Relation)的二维表。 关系模型术语
|
||||||||
半结构化数据模型 |
半结构化数据模型类似树或图,而不是表. |
数据模型的组成要素:
数据模型是严格定义的一组概念的集合,主要是用于描述数据或信息的标记。
因此数据模型通常由数据结构、数据操作和完整性约束三部分组成.
数据结构 Structure Of The Data
|
数据结构描述数据库的组成对象以及对象之间的联系,可以描述出一个客观事物的类型、内容有关的数据项,并且可以表示出不同事物之间的联系. |
数据操作 Operation On The Data |
数据操作是指对数据库中的一个或多个对象或数据记录运行执行的操作的集合. 数据库的主要操作主要是两类:查询和更新(增加、修改、删除) 在数据模型中必须定义这些操作的确切含义、操作符号、操作规则以及实现操作的语言(一般为SQL) |
完整性约束 |
为了保证数据库中所保存的数据是有正确的意义,在数据库中专门为所有操作的数据提供一组完整性的规则,所有的数据必须符合这些既定的规则才可以操作。 |
SQL概述
- SQL(Structured Query Language),即结构化查询语句,是关系数据库的标准语言,SQL是一个通用的、功能极强达观系数据库语言。
- SQL是一个标准,NOSQL目前被翻译为Not Only SQL,其中代表为MongoDB.
- SQL语言有以下几个部分:
数据操作语言 Data Manipulation Language |
用于检索或者修改数据; |
数据定义语言 Data Definition Language |
用于定义数据的结构,创建、修改或者删除数据库对象; |
用于定义数据库用户的权限; |
|
完整性 Integrity |
SQL DDL包括定义完整性约束的命令,保存在数据库中的数据更新时必须满足所定义的完整性要求,否则无法更新; |
视图定义 View Definition |
:SQL DDL包括定义视图的命令; |
嵌入式SQL和动态SQL Embedded SQL AND Dynamic SQL |
主要定义如何将SQL嵌入到通用边城语言,如:C、C++、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具有以下元素:
2、The first generation of database management systems included the following types: 第一代的数据库管理系统包括以下类型:
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: 关系数据库是一个符合关系模型的数据库.关系模型有以下主要方面:
|
||||||||||
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类完整性规则:
|
||||||||||
外键 |
如果有属性关键字在一个表中是主关键字,那么这个属性关键字被称为另一个表的外键。外键表示了两个关系之间的联系 |
||||||||||
域(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种类型的操作:
|
||||||||||
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数据库已经将关系模型扩展为对象-关系模型,使其可以在关系数据库中存储复杂的业务模型. |