第一章 引言

数据库管理系统(DataBase-Management System, DBMS)*是由一个相互关联的数据的集合和一组用以访问这些数据的程序构成。这个数据集合通常称为数据库(DataBase)。

1.1 数据视图

数据库系统是由一些互相关联的数据以及一组使得用户可以访问的和修改这些数据的的程序的集合。

数据库系统的一个主要目标是给用户提供数据的抽象视图,也就是说,系统隐藏关于数据存储和维护的某些细节。

1.1.1 数据抽象

  • 物理层(Physical level)。最低层次的抽象,描述数据实际上是如何存储的。

  • 逻辑层(logical level)。比物理层层次稍高的抽象,描述存储的数据间存在的关系。物理数据独立性,即数据的实现可能涉及较为复杂的数据结构,但是逻辑层用户不必知道这些。

  • 视图层(view level)。最高层此的抽象,只描述整个数据库的某个部分。

三层抽象关系如下图所示

通过与程序设计语言中的数据类型的概念进行类比,我们可以弄清各层抽象之间的区别:

# 我们可以定义下面记录:
type instructor = recordID:char(5);name:char(20);dept_name:char(20);salary:numeric(8, 2);end;

以上代码定义了一个具有四个字段的新纪录instructor。每个字段都有一个字段名和所属类型。对一个大学来说,可能还包含几个这样的记录:

  • department,包含字段dept_name、building和budget;
  • course,包含字段course_id、title、depart_name和credits;
  • student,包含字段ID、name、dept_name和tot_cred。

在物理层,一个instructor、department或student记录可能被描述为连续存储位置组成的存储块。编译器为程序设计人员屏蔽了这一层的细节。与此类似,数据库系统为数据库程序设计人员屏藏了许多最底层的存储细节。而数据库管理员可能需要了解数据物理组织的某些细节。

在逻辑层,每个这样的记录通过类型定义进行描述,正如前面的代码段所示。在逻辑层上同时还要定义这些记录类型的相互关系。程序设计人员正是在这个抽象层次上使用某种程序设计语言进行工作。与此类似,数据库管理员常常在这个抽象层次上工作。

最后,在视图层,计算机用户看见的是为其屏蔽了数据类型细节的一组应用程序。与此类似,视图层上定义了数据库的多个视图,数据库用户看到的是这些视图。除了屏蔽数据库的逻辑层细节以外,视图还提供了防止用户访问数据库的某些部分的安全性机制。例如,大学注册办公室的职员只能看见数据库中关于学生的那部分信息,而不能访问涉及教师工资的信息。

1.1.2 实例与模式

随着时间的推移,信息可能会被删除,数据库也就发生了改变。特定时刻存储在数据库中的信息的集合称为数据库的一个实例(instance)而数据库的总体设计称作数据库模式(schema)

根据前面我们所讨论的不同的抽象层次,数据库的系统可以分为几种不同的模式物理模式(Physical schema)在物理层描述数据库的设计,而逻辑模式(logical schema)则是在逻辑层描述数据库的设计。数据库在视图层也可以有几种模式,有时称为子模式(subschema),他描述了数据库的不同视图。

程序员依赖逻辑模式构建应用程序,所以在这些模式中逻辑模式最为重要。物理模式隐藏在逻辑模式下,并且通常可以在应用程序丝毫不受影响的情况下被轻易地更改。应用程序如果不是依赖于物理模式,他们就称为物理数据独立性(Physical data independence)。因此物理模式改变了,他们也无需重写。

1.1.3 数据模型

数据库结构的基础是数据模型(data model)。*数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。*数据模型提供了一种描述数据、逻辑层和视图层数据库设计的方式。

下文中我们将提到几种不同的数据模型。数据模型可被划分为四种:

  • 关系模型(relation model)。关系模型用表的集合来表示数据与数据间的联系。每个表有多个列,每个列有唯一的列名。关系模型是基于记录的一种类型。当今大多数数据库系统都是属于这种关系模型。

  • 实体-联系模型(entity-relationship model)。实体-联系(E-R)数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象与这些对象间的联系构成。实体是现实世界中可区别与其他对象的一件“事件”或“一个物体”。实体-联系模型广泛用于数据库设计。

  • 基于对象的数据模型(object-base data model)。面向对象数据模型。可以看做是E-R模型增加了封装、方法(函数)和对象标识等概念后的拓展。对象-关系数据模型结合了面向对象的数据模型和关系型数据模型的特征。

  • 半结构化数据模型(semistructrued data model)。半结构化数据模型允许那些相同数据类型的数据项含有不同的属性集的数据定义。这和早先提到的数据模型形成了对比:在那些数据模型的中所有的某种特定类型的数据项必须有相同的属性集。可扩展标记语言(eXtensible Markup Language, XML)被用于表示半结构数据。

在历史上,**网状结构模型(network data model)层次数据模型(hierarchical data model)**先于关系模型。但是,现很少使用。

1.2 数据库语言

数据库系统提供了**数据定义语言(data-definition language)来定义数据库模式,以及数据操作语言(data-manipulation language)**来表达数据库的查询与更新。而实际上,数据定义和数据操作语言并不是两种分离的语言。相反的,他们构成了单一的数据库语言(如广泛使用的SQL语言)的不同部分。

1.2.1 数据操作语言

**数据操作语言(Data-Manipulation Language,DML)**是这样的一种语言,它使用户可以访问或操作那些按照某种适当的数据模型组织起来的数据。有以下访问类型:

  • 检索

  • 增加

  • 删除

  • 修改

通常有两类基本的数据操作语言:

  • 过程化DML(procedural DML),要求用户指定需要什么数据以及如何获取这些数据。

  • 声明式DML(declaration DML),(也称为非过程DML)只要要求用户指定需要什么数据,而不指明如何获取这些数据。

1.2.2 数据定义语言

数据库模式是通过一系列定义来说明的,这些定义由一种称作**数据定义语言(Data-Definition Language, DDL)**的特殊语言来表示。DDL也用于定义数据的其他特征。

数据库的系统的所使用的存储结构和访问方式是通过一系列特殊的DDL语句来说明的,这种特殊的DDL被称为数据存储和定义(Data storage and definition)语言。这些语言定义了数据库的实现细节。这些细节对用户通常是不可见的。

数据库中的数值必须满足某些一致性约束(consistency constraint)。例如,假设大学要求一个系的账户余额不可为负数。DDL语言提供了指定这种约束的工具。每当数据库被更新时,数据库会检查这些约束。因此,数据库系统实现可以以最小代价测试完整性约束。

  • 域约束( omain constraint)。每个属性都必须对应于一个所有可能的取值构成的域(例如,整数型、字符型、日期/时间型)。声明一种属性属于某种具体的域就相当于约束它可以取的值。域约束是完整性约束的最基本形式。每当有新数据项插入到数据库中,系统就能方便地进行域约束检测。

  • 参照完整性( (referential integrity)。我们常常希望,一个关系中给定属性集上的取值也在另一关系的某一属性集的取值中出现(参照完整性)。例如,每门课程所列出的系必须是实际存在的系。更准确地说,一个 course记录中的 dept_name值必须出现在department关系中的某个记录的dept_name属性中。数据库的修改会导致参照整性的破坏。当参照完整性约束被违反时,通常的处理是拒绝执行导致完整性被破坏的操作。

  • 断言( (assertion)。一个断言就是数据库需要时刻满足的某一条件。域约束和参照完整性约束是断言的特殊形式。然而,还有许多约束能仅用这几种特殊形式表达。例如,“每一学期每个系必须至少开设5门课程”,必须表达成一个断言。断言创建以后,系统会检测其有效性。如果断言有效,则以后只有不破坏断言的数据库更新才被允许。

  • 授权( (authorization)。我们也许想对用户加以区别,对于不同的用户在数据库中的不同数据值上允许不同的访问类型。这些区别以授权来表,最常见的是:读权限( read authorization)),允许),允许插入新数据,但不允许修改读取数据,但不能修改数据;插入权限( insert authorization已有数据;更新权限( update authorization)),允许修改,但不能删除数据;删除权限( deleteauthorization),允许删除数据。我们可以赋予用户所有的权限,或者没有或部分拥有这些权限。

正如其他任何程序设计语言一样,DDL以一些指令(语句)作为输入,生成一些输出。DDL的输出放在数据字典( data dictionary)中,数据字典包含了元数据( metadata)。元数据是关于数据的数据。可把数据字典看作一种特殊的表,这种表只能由数据库系统本身(不是常规的用户)来访问和修改。在读取和修改实际的数据前,数据库系统先要参考数据字典

1.3 关系数据库

1.3.1 表

如下图所示:

1.3.2 数据操作语言

这边仅仅是一个例子,详细在下面:

## 这个可以不明白
select instructor.name
from instructor
where instructor.dept_name = 'history';

1.3.3 数据定义语言

这边仅仅是一个例子,详细的在下面:

## 这个可以不明白
create table department(dept_name  char(20),building  char(15),budget  numeric(12, 2));

1.3.4 来自应用程序的数据库访问

SQL不像一个通用的图灵机那么强大;即,有一些计算可以用通用的程序设计语言来表达,但无法通过SQL来表达。SQL还不支持诸如从用户那儿输入、输出到显示器,或者通过网络通信这样的动作。这样的计算和动作必须用一种宿主语言来写,比如C、C++或Java,在其中使用嵌入式的SQL查询来访问数据库中的数据。应用程序(application program)在这里是指以这种方式与数据库进行交互的程序。在大学系统的例子中,就是那些使学生能够注册课程、产生课程花名册、计算学生的GPA、产生工资支票等的程序。

为了访问数据库,DML语句需要有宿主语言执行。有两种途径可以做到这一点:

  • 一种是通过提供应用程序接口(过程集),它可以用来将DML和DDL的语句发送给数据库,再取回结果

    与C语言一起使用的开放数据库连接(ODBC)标准,是一种常用的应用程序接口标准。Java数据库连接(JDBC)标准为Java语言提供了相应的特性。

  • 另一种是通过扩展宿主语言的语法,在宿主语言的程序中嵌入DML调用。通常用一个特殊字符作为DML调用的开始,并且通过预处理器,称为DML预编译器(DML precompiler),来将DML语句转变成宿主语言中的过程调用。

1.4 数据库设计

数据库设计主要是数据库模式设计。我们现在先着重讨论数据库查询语句的书写以及数据库模式的设计(也就是说数据库模式设计 != 数据库设计),等本书的第九章我们再讨论应用设计的整个流程。

1.4.1 设计流程

  1. 全面刻画数据库用户的数据需求。这个阶段成果制定出用户需求的规格文档。

  2. 概念设计。将需求转换为一个数据库的概念模式。

  3. 功能需求说明。一个开发完全的概念模式还将指出企业的功能需求。

  4. 逻辑设计阶段。高层将概念模式映射到要使用的数据库系统的实现数据模型上。

  5. 物理设计阶段。然后将设计者指定数据库的物理性质。

如果上面不懂没关系,我们在第九章有详细介绍。

1.4.2 大学机构的数据库设计

需求描述,我们先要得到大学机构的基本特征与需求。如下所示:

  • 大学分成多个系。每个系由自己唯一的名字(dept_name)来标识,坐落在特定的建筑物(building)中,有它的经费预算(budget);
  • 每一个系有一个开设课程列表。每门课程有课程号(course_id)、课程名(tile)、系名(dept_name)和学分(credits),还可能有先修要求(prerequisites);
  • 教师由个人唯一的标识号(ID)来标识。每位教师有姓名(name)、所在的系(dapat_name)和工资(salary);
  • 学生由个人唯一的标识号(ID)来标识。每位学生有姓名(name)、主修的系(deptname)和已修学分数(tot_cred);
  • 大学维护一个教室列表,详细说明楼名(building)、房间号(room_number)和容量(capacity);
  • 大学维护开设的所有课程(开课)的列表。每次开课由课程号(course_id)、开课号(sec_id)、年(year)和学期(semester)来标识,与之相关联的有学期(semester)、年(year)、楼名(building)、房间号(room_number)和时段号(time_slot_id,即上课的时间);
  • 系有一个教学任务列表,说明每位教师的授课情况;
  • 大学有一个所有学生课程注册的列表,说明每位学生在哪些课程的哪次开课中注册了。

一个真正的大学数据库会比上述的设计复杂得多。然而,我们就用这个简化了的模型来帮助你理解概念思想,避免你迷失在复杂设计的细节中。

1.4.3 实体-联系模型

实体一联系(ER)数据模型使用一组称作实体的基本对象,以及这些对象间的联系。实体是世界中可区别于其他对象的一件“事情”或一个“物体”。例如,每个人是一个实体,每一个银行帐户也是一个实体。

数据库中实体通过属性(attribute)集合来描述。例如,属性dept_name、building与budget可以描述大学中的一个系,并且它们也组成了department实体集的属性。类似地,属性ID、name和salary也可描述instructor实体。

我们用额外的属性ID来唯一标识教师(因为可能存在两位教师有相同的名字和相同的工资),须给每位教师分配唯一的教师标识。在美国,许多机构用一个人的社会保障号(它是美国政府分配等个美国人的一个唯一的号码)作为他的唯一标识。

联系(relationship)是几个实体之间的关联。例如,member联系将一位教师和她所在的系关联在起。同一类型的所有实体的集合称作实体集(entity set),同一类型的所有联系的集合称作联系集(relationship set).。

数据库的总体逻辑结构(模式)可以用实体-联系图(entity-relationship diagram,E-R图)进行图化表示。有几种方法来画这样的图。最常用的方法之一是采用统一建模语言(Unified ModeinLanguage,UML)。在我们使用的基于UML的符号中,E-R图如下表示:

  • 实体集矩形框 表示,实体名在头部,属性名列在下面。

  • 联系集用连接一对相关的实体集的 菱形 表示,联系名放在菱形内部。

作为例子,我们来看一下大学数据库中包括教师和系以及它们之间的关联的部分。对应的ER下图所示。E-R图表示出有instructor和department这两个实体集,它们具有先前已经列出的一些属性。这个图还指明了在教师和系之间的member联系:

除了实体与联系之外,E—R模型还描绘了数据库必须遵守的对其内容的某些约束。一个重要的约束就是映射基数(mapping cardinality),他表示通过某些联系集能够与一些实体进行关联的实体数目。例如,如果一个教师这只属于一个系,那这就是一个映射约束,E-R图就可以表示这种约束。

1.4.4 规范化

设计关系数据库所用到的另外一种方法是通常被称为规范化的过程。它的目标是生成一个关系模式集合,使我们存储信息时没有不必要的冗余,同时又能很轻易地检索数据。这种方法是设计一种符合适当的范式(normal form)的模式,为确定一个关系模式是否符合想要的范式,我们需要额外的关于用数据库建模的现实世界中机构的信息。最常用的方法是使用函数依赖(functional dependeney),我们将在8.4节讨论。

为了理解规范化的必要性,我们看一看在不好的数据库设计中会发生什么问题。一个不好的设计可能会包括如下不良特性:

  • 信息重复(如果将表合并在一起就可能出现信息重复,比如:student表中有学生ID,选课表又有学生ID,那么这两张3表合并就会出现信息重复);
  • 缺乏表达某些信息的能力(就比如我们要建一个新系,但是没有数据可以添加,那我们就是出现了缺乏表达信息的能力)。

1.5 数据的存储与查询

数据库划分为不同的模块,每个模块完成整个系统的一个功能。

数据库的功能部件可分为存储管理器查询处理部件

1.5.1 存储管理器

  • 存储管理器是数据库系统中负责在数据库中存储的底层数据与应用程序以及向系统提交的查询之间提供接口的部件。

  • 存储管理器负责与文件管理器进行交互。

  • 原始数据通过操作系统提供的文件系统存储在磁盘上。

存储管理部件包括:

  • 权限及完整性管理器(nd integritymanger),它检测是否满足完整性约束,并检森试图访问数据的用户的权限。

  • 事务管理器(transaction manager),它保证即使发生了故障,数据库也保持在一致的(正确的)发态,并保证并发事务的执行不发生冲突。

  • 文件管理器(file manager),它管理磁盘存储空间的分配,管理用于表示磁盘上所存储信息的数据结构。

  • 缓冲区管理器(buffer manager),它负责将数据从磁盘上取到内存中来,并决定哪些数据应被缓冲存储在内存中。缓冲区管理器是数据库系统中的一个关键部分,因为它使数据库可以处理比内存更大的数据。

存储管理器实现了几种数据结构,作为系统物理实现的一部分:

  • 数据文件(data files),存储数据库自身。

  • 数据字典(data dictionary),存储关于数据库结构的元数据,尤其是数据库模式

  • 索引(index),提供对数据项的快速访问。和书中的索引一样,数据库索引提供了指向包含特定值的数据的指针。例如,我们可以运用索引找到具有特定的D的instructor记录,或者具有特定的name的所有instructor记录。散列是另外一种索引方式,在某些情况下速度更快,但不是在所有情况下都这样。

1.5.2 查询处理器

查询处理器组件包括:

  • DDL解释器(DDL interpreter),它解释DDL语句并将这些定义记录在数据字典中。

  • DML编译器(DML compiler),将查询语言中的DML语句翻译为一个执行方案,包括一系列查询执行引擎能理解的低级指令。

一个查询通常可被翻译成多种等价的具有相同结果的执行方案的一种。DML编译器还进行查询优query optimization),t

也就是从几种选择中选出代价最小的一种。

  • 查询执行引擎(query evaluation engine),执行由DML编译器产生的低级指令。

第12章将介绍查询执行,查询优化器选择合适的执行策略的方法将在第13章中讨论。

1.6 事务管理

通常,对数据库的几个操作合起来形成一个逻辑单元。比如说银行转账,A用户转钱,B用户收钱。

这个事情,有以下几个特点:

  • 原子性:事情要么完成要么就完全不发生;
  • 正确性:A与B余额之和应该保持不变;
  • 持久性:账户A和账户B的余额应该保持转账成功的状态。

**事务(transaction)**是数据库应用中完成单一逻辑功能的操作集合。每一个事务是一个具原子性又具一致性的单元。

原子性和持久性的保证是数据库系统自身的职责,确切地说,是恢复管理器(recovery manager)的职责。在没有故障发生的情况下,所有事务均成功完成,这时要保证原子性很容易。但是,由于各种各样的故障,事务并不总能成功执行完毕。为了保证原子性,失败的事务必须对数据库状态不产生任何影响。因此,数据库必须被恢复到该失败事务开始执行以前的状态。这种情况下数据库系统必须进行故障恢复(failure recovery),即检测系统故障并将数据库恢复到故障发生以前的状态。

最后,当多个事务同时对数据库进行更新时,即使每个单独的事务都是正确的,数据的一致性也可能被破坏。**并发控制管理器(concurrency-control manager)**控制并发事务间的相互影响,保证数据库一致性。

事务管理器(transaction manager)包括并发控制管理器恢复管理器*。*

1.7 数据库体系结构

数据库的体系结构很大程度上取决于数据库系统所运行的计算机系统。

数据库系统可以是集中式的、客户/服务器式的(一台服务器为多个客户机执行任务);也可以针对并行计算机设计数据库系统;分布式数据库包含地理上分离的多台计算机。

数据库可以分为两到三个部分。

在一个两层体系结构(two-tier architetctrue)中,应用程序驻留在客户端,通过查询语言调用服务器上的数据库系统功能。就像ODBC与JDBC这样的应用程序接口标准被用于进行客户端和服务器的交互。

在一个**三层体系结构(two-tier architetctrue)中,客户端只作为一个前端并且不包含任何直接的数据库调用。客户端通常通过一个表单界面与应用服务器(application server)**进行通信以访问数据。应用程序的业务逻辑(business logic),也就是说在何种条件下做出何种反应,被嵌入到应用服务器中,而不是分布在多个客户机上。三层结构的应用更适合大型应用和互联网上的应用。

1.10数据挖掘与信息检索

**数据挖掘(data mining)**这个术语指半自动地分析大型数据库并从中找出有用的模式的过程。和人工智能中的知识发现(也称为机器学习(machine learning))或者统计分析一样,数据挖掘试图从数据中寻找规则或模式。但是,数据挖掘和机器学习、统计分析不一样的地方在于它处理大量的主要存储在磁盘上的数据。也就是说,数据挖掘就是在数据库中发现知识。

从数据库中发现的某些类型的知识可以用一套**规则(rule)**表示。下面是一条规则的例子,非形式化地描述为:“年收入高于50000美元的年轻女性是最可能购买小型运动车的人群”。当然这条规则并不是永远正确的,但它有一定的“支持度”和“置信度”。其他类型的知识表达方式有联系不同变量的方程式,或者通过其他机制根据某些已知的变量来预测输出。

许多企业都建立了数据仓库(data warehouse)。查询非结构化的文本数据被称为信息检索(information retrieval)

1.11 特种数据库

数据库系统的一些应用领域受到关系数据模型的限制。其结果是:研究人员开发出几种数据模型来处理这些领域的应用,包括基于对象的数据模型和半结构化数据模型。

1.11.1 基于面向对象的数据模型

对象程序设计已经成为占统治地位的软件开发方法学。这导致面向对象数据模型(object-based data model)的发展,面向对象模型可以看作ER模型的扩展,增加了封装、方法(函数)和对象标识。继承、对象标识和信息封装(信息隐藏),以及对外提供方法作为访问对象的接口,这些是面向对象设计的关健概念,现在在数据建模中也找到了应用。面向对象数据模型还支持丰富的类型系统,包编结构和集合类型。在20世纪80年代,开发了好几个基于面向对象数据模型的数据库系统。

现在主要的数据库厂商都支持**对象一关系数据模型(object-relational data model),**这是一个将面向对象数据模型和关系数据模型的特点结合在一起的数据模型。它扩展了传统的关系模型,增加了新的特征如结构和集合类型、以及面向对象特性。第22章介绍对象一关系数据模型。

1.11.2 半结构化数据模型

半结构化数据模型允许那些相同类型的数据项有不同的属性集的数据说明。这和早先提到的数据模型形成了对比:在那些数据模型中所有某种特定类型的数据项必须有相同的属性集。XML语言设计的初裹是为文本文档增加标签信息,但由于它在数据交换中的应用而变得日益重要。XML提供了表达含有嵌套结构的数据的方法,能够灵活组织数据结构,这对于一些非传统数据来说非常重要。

1.12 数据库用户和管理员

数据库系统的一个主要目标是从数据库中检索信息和往数据库中存储新信息。使用数据库的人员可分为数据库用户数据库管理员

1.12.1 数据库用户和用户界面

根据所期望的与系统交互方式的不同,数据库系统的用户可以分为四种不同类型。系统为不同类型的用户设计了不同类型的用户界面

  • 无经验的用户(naive user)。

  • 应用程序员(application programmer)是编写应用程序的计算机专业人员。有很多工具可以供应用程序员选择来开发用户界面。快速应用开发(Rapid Application Development,RAD)工具是使应用程序员能够尽量少编写程序就可以构造出表格和报表的工具。

  • **老练的用户(sophisticated user)**不通过编写程序来同系统交互,而是用数据库查询语言或数据分析软件这样的工具来表达他们的要求。分析员通过提交查询来研究数据库中的数据,所以属于这一类用户。

  • **专门的用户(specialized user)**是编写专门的、不适合于传统数据处理框架的数据库应用的富有经验的用户。这样的应用包括:计算机辅助设计系统、知识库和专家系统、存储复杂结构数据(如图形数据和声音数据)的系统,以及环境建模系统。在第22章中我们将要讨论几个这样的应用。

1.12.2 数据库管理员

使用DBMS的一个主要原因是可以对数据和访问这些数据的程序进行集中控制。对系统进行集中控制的人称作数据库管理员(DataBase Administrator,DBA)。DBA的作用包括:

  • 模式定义(schema definiton)。DBA通过用DDL书写的一系列定义来创建最初的数据库模式。
  • 存储结构及存取方法定义(storage structure and access-method definition)。
  • 模式及物理组织的修改((shema and physical–organization modification)。由数据库管理员(DBA)对模式和物理组织进行修改,反应机构的需求变化,或为提高性能选择不同的物理组织。
  • 数据库访问授权(granting of authorization for data access)。
  • 日常维护。

数据库系统概论笔记(第一章 引言)—— 持续更新,争取每周更新一章相关推荐

  1. 数据库系统概论笔记——第一章

  2. 数据库系统概论笔记整理———第一章(绪论之数据库系统,数据模型,外模式,内模式,层次模型,数据独立性等)

    ❤️ 数据库系统概论 1.数据(data):描述事物的符号记录,可以是数字,图像,音频,视频等. 2.数据的含义称为数据的语义,数据与其语义是不可分的 3.数据库(DB):是长期存储在计算机内,有组织 ...

  3. 数据库系统概论:第一章 绪论

    1.1 数据库系统概论 1.1.1 数据库系统概论 1. 数据 描述事物的符号记录称为是数据; 数据的解释叫做语义,他与数据时密不可分的; 记录是计算机中表示和储存数据的一种格式或者一个方法; 2. ...

  4. 《数据库系统概论》第一章笔记

    本书第一章,介绍了一些数据库的基本概念,是理解后序章节的基础. 笔记基本上对这些基础概念的摘录. 做笔记的目的,一是加深记忆和理解,二是方便以后资料查找. 1.1 数据库系统概述 1.1.1 数据库系 ...

  5. 数据库系统概论笔记第五章和习题

  6. 数据库系统概论笔记二——画E-R图

    什么是E-R模型? E-R模型是有P.P.S.Chen提出的一个用E-R图描述现实世界的概念模型. E-R模型有三个重要的概念:实体.属性.联系. 实体就是现实世界的一个现实或虚拟的对象,如一个学生就 ...

  7. 2008年十大IT图书评选第一周幸运读者获奖名单(每周更新)

    2008年末,51CTO.com读书频道联合各主要出版机构,推出 "2008年十大最佳IT技术图书与原创作者评选"活动,我们将采取读者投票+专家意见的方式进行.图书评选活动将每年举 ...

  8. 《数据库系统概论》课程学习(26)——习题集(第1-14章)含答案

    数据库系统概论习题集 第一章 绪论 一.选择题 1. DBS是采用了数据库技术的计算机系统,DBS是一个集合体,包含数据库.计算机硬件.软件和( ) . A. 系统分析员 B. 程序员 C. 数据库管 ...

  9. 机器学习笔记 (第一周)

    机器学习笔记 (第一周) 目录 机器学习笔记 (第一周) 引言(Introduction) 1.1 什么是机器学习,机器学习能做些什么事情 1.2 机器学习是什么? 1.3 监督学习 1.4 无监督学 ...

最新文章

  1. cordova 安装ssl证书_cordova环境配置(android)
  2. 如何在自定义数据源组件中限制用户的更改
  3. thinkphp隐藏后台地址
  4. 可用性高达99.999%!支付系统高可用架构设计实战
  5. Tool:微信使用技巧之手把手教你如何在电脑端同时登录多个微信账号之图文教程详细攻略
  6. python死锁案例_python避免死锁方法实例分析
  7. 文件上传linux服务器,Linux 文件上传Linux服务器
  8. 中石油训练赛 - Block(二维前缀和+思维)
  9. struts1跳入指定方法
  10. Android App性能測试
  11. 前端开发必须说的那些事之——同源策略(same origin policy)
  12. phpstorm 全项目替换_会信息交互还带5G基站的路灯来了!白云新城智慧灯杆项目动工...
  13. PCL1.8.0 error C4996: 'pcl::SAC_SAMPLE_SIZE'编译错误
  14. ElasticSearch 安装IK分词器
  15. 手把手教你使用Python写贪吃蛇游戏(pygame)
  16. Python基础PTA习题答案
  17. Xposed模拟位置
  18. 概率论复习笔记二——离散型分布和连续型分布
  19. 三、Hive数据仓库应用之Hive数据操作语言(超详细步骤指导操作,WIN10,VMware Workstation 15.5 PRO,CentOS-6.7)
  20. 指标 | 指标波动归因

热门文章

  1. UltraISO9。0 注册码
  2. Words Seven
  3. 如何修改xadmin的菜单设置
  4. destoon数据库字典
  5. uni-app利用renderjs-echarts-demo构造组织架构图
  6. 使用Jmeter作为代理服务器录制脚本
  7. Android 监听开机广播实现应用开机自启动
  8. QT for Android环境搭建与配置
  9. SpringBoot整合Knife4j框架
  10. B10HTML5期末大作业:漫画在线网站设计——奇恩动漫(1页) HTML+CSS+JavaScript 本网页作业为一个展示产品类型的漫画设计作业作品成品