What Is DataBase?
What Is DBMS ?
■A very large,integrated collection of data.(大规模的集成的数据集合)
■Models real-world enterprise.(一家现实中的企业如何运行等等在计算机中怎样表示,数据库就可以理解为是对企业进行建模后以数据的形式存储到计算机中)
►Entities(e.g.students,courses)(在数据库中我们需要描述客观世界存在的实体,实体可以是有形的,像桌椅板凳,也可以是无形的,像学生的课程)
►Relationships(e.g.electives)(客观世界的实体之间存在各种各样的联系,我们需要描述这些联系并存储到数据库中)
■A Data Management System(DBMS) is a software package designed to store and manage databases.
Files vs. Databases
文件是操作系统提供的最简单最基本的数据存储机制,首先文件是没有结构的,在文件中存储的数据就是平滑的字符流;其次,文件提供的数据管理功能十分简单:create(创建一个文件)、open(打开一个文件)、read(在一个已经打开的文件里面读几个字节)、write(往一个文件里面写几个字节)、lseek(调整文件的读写指针,把文件的读写指针向前或向后跳几个字节再进行读写)。
■Application must stage large datasets between main memory and second storage(内外存交换)(e.g.buffering(缓冲),page-oriented access(面向对象),32-bit addressing(寻址),etc.)
因为文件提供的数据管理功能十分有限,故上述这些功能都需要用户在应用程序中实现,但是对于数据库,这些都由DBMS实现。
■Special code for different queries
随着文件中数据存储结构的改变,用户编写的相应功能的代码也要改变。
■Must protect data from inconsistency due to multiple concurrent users
防止在多个并发用户同时访问数据库时造成数据的不一致性。比如说,一个用户想把这个数据改成4,另一个用户此时想把这个数据改成5,如何保证数据的一致性就成了一个问题。文件是没有这个功能的,想保持一致只能在应用程序上着手,但数据库的DBMS却可以保证数据的一致性。
■Crash recovery
故障发生时数据可能被破坏,文件是无法恢复被损坏的数据的,但DBMS可以。
■Security and access control
有些数据是敏感的,不能让未经授权的用户访问,文件只能控制用户是否有权访问,而DBMS可以提供更精细的访问控制。
Why Use a DBMS?
■Data independence and efficient access
■Reduced application development time
因为一些底层的事情都被DBMS做了,在数据库上开发应用相对用时要少得多。
■Data integrity and security(数据完整性和安全性)
■Uniform data administration(对数据的统一管理)
■Concurrent access,recovery from crashes
Why Study Databases?
■Shift from computation to information(计算机技术已经由之前的科学计算发展到现在的信息管理)
►at the "low end":scramble to webspace(a mess!)(低端来说,我们使用的网站上面有各种各样五花八门的信息)
►at the "high end":scientific applications(高端来说,科学研究中也会产生大量的信息需要管理)
■Datasets increasing in diversity and volume(数据集的种类和规模日益增长)
►Digital libraries,interactive video,Human Genome project,EOS project(数字图书馆、人类基因组织等工程都产生了大量信息需要管理)
►...need for DBMS exploding(对数据库管理系统的需求呈爆炸式增长)
■DBMS encompasses most of CS(DBMS包含了Computer Science的大部分成果)
►OS,languages,theory,AI,multimedia,logic
Data,Data Model and Data Schema
■Data are symbols for describing the things of real world.They are existing form of information.
数据是描述现实世界的符号表示,比如一张桌子,在计算机里面,我们就可以通过它的长宽高、材质、颜色等等来描述它。数据是信息存在的形式。
■A data model is a collection of concepts and definitions for describing data.
数据模型就是用来描述数据的一组概念和定义。也可以把数据模型理解成一种数据结构,我们前面说数据库就是对现实世界的建模,建模要有方法,数据模型就是方法,我们以后说层次模型,网状模型就是采用了不同的建模方法,即不同的数据模型。
■A schema is a description of a particular collection of data,using a given data model.
模式是用一种给定的数据模型对特定的数据集进行描述的结果。假如把数据模型看成一种程序设计语言,那么模式就是用这种程序设计语言编写的一个程序。
■The relational model of data is the most widely used model today.(关系型数据模型目前仍然是主流的数据模型)
►Main concept:relation,basically a table with rows and columns.(关系型数据模型中最基本的数据结构,或者说唯一的数据结构,就是relation,relation就是表,实体和实体之间的联系都由表来表示。表中的一行我们称为元组,一列我们称为属性。)
►Every relation has a schema,which describes the columns,or fields.(关系型数据库里面有很多张表,每张表都不一样,那么怎么描述表的结构呢?就是模式,比如学生信息表,它的属性由学号,姓名,出生年月等组成,属性的类型,比如学号是字符型等等,这些就描述了表的结构,就是schema)