数据库的基本概念

数据库的基础

1.1、数据库基本概念

数据:描述事物的符号记录,可以使数字,也可以是文字、图形、图像、声音、语言等,数据有多种形式,它们都可以经过数字化后存入计算机。数据的含义称为数据的语义,数据与语义是不可分的。

数据库:存储数据的仓库,是长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储,具有较小的冗余度,较高的独立性和易扩展性,并为各种用户共享,即数据库有永久存储、有知识和可共享三个基本特点。

数据库管理系统(DBMS):是位于用户与操作系统之间的一层数据管理软件。它的主用功能包括:

  1. 数据定义功能:提供数据定义语言(DDL),让用户方便地对数据库中数据对象进行定义。
  2. 数据组组织、存储和管理:要提高存储空间利用率和存储效率。
  3. 数据操纵功能:提供数据操纵语言(DML),实现对数据库基本操作,如增删改查等。
  4. 数据库的建立和维护功能:统一管理控制,以保证安全、完整、多用户并发使用。
  5. 其它功能:与网络中其它软件系统通信功能,异构数据库之间的互访和互操作功能。

数据库系统的特点:

  1. 数据结构化:实现整体数据的结构化,也是数据库系统与文件系统的本质区别。数据库中数据不再仅仅针对某一个应用,而是面向全组织,不仅内部是结构化的,而且整体是结构化的。在文件系统中,文件内部有某些结构,但文件间没有联系,而关系数据库中,关系表之间的联系可用参照完整性来表达。
  2. 数据共享性高,冗余度低,易扩充。
  3. 数据独立性高:包括数据的物理独立性和逻辑独立性。物理独立性指用户的应用程序跟存储在磁盘上的数据库中数据是相互独立的,数据库中数据存取是由DBMS管理的。数据独立性是由DBMS的二级映像功能来保证的。
  4. 数据由DMBS统一管理和控制。

数据模型:是对现实世界数据特征的抽象,是对现实世界的模拟,是数据库系统的核心和基础。数据模型应满足三方面需求:1.真是模拟现实世界;2.容易为人理解;3.便于在计算机上实现。数据模型按应用目的分为两类:

概念模型:按用户观点对数据和信息建模,主要用于数据库设计,也称信息模型。

逻辑模型和物理模型:逻辑模型是按计算机观点对数据建模,主要包括层次模型、网络模型、关系模型、面向对象模型、对象关系模型;物理模型是对数据最底层的抽象,它描述数据在系统内部的表示方式和存取方法。

数据模型通常由数据结构、数据操作和完整性约束三部分组成,是严格定义的一组概念的集合,精确的描述了系统的静态特写、动态特性和完整性约束条件。

关系数据库的完整性:实体完整型、参照完整性、用户自定义完整性,其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作关系的两个不变特性。

实体完整性规则:若A是关系R的主属性,则A不能取控制,即主属性不能为空。

参照完整性规则:如F是关系R的外码,参照关系S的主码K,则R中每个元祖在F上的值必须为S中某个元祖的主码值或空值,即外码要么是参照的主码值要么是空值。

概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力的工具,也是设计人员与用户之间进行交流的语言。信息世界涉及的概念主要有:

  1. 实体(Entity):客观存在并可相互区别的事物成为实体。可以是人、事、物,也可以是抽象的概念和联系。
  2. 属性(Attribute):实体所具有的某一特性。一个实体可以又若干个属性来刻画。
  3. 码(Key):唯一标识实体的属性集。
  4. 域(Domain):域是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
  5. 实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。用实体名和属性名集合来抽象和刻画同类实体,称为实体型。
  6. 实体集(Entity Set):同一类型实体的集合。
  7. 联系(Relationship):实体内部和实体之间的联系。实体之间的联系有一对一,一对多、多对多三种。

概念模型的一种表示方法:实体-联系方法,E-R图:提供了表示实体型、属性和联系的方法:实体型:用矩形表示,矩形框内写实体名;属性:用椭圆表示,并用无向边将其与对应的实体型连接起来;联系:用菱形表示,框内写明联系名,并用无向边与有关实体型连接起来,同时在无向边上标上联系的类型(1:1,1:n,m:n)。联系也可以有属性。

1.2、数据库的三级模式、两级映像

数据模型中有“型”和“值”的概念,如:学生(学号,性别,班级)是“型”,而:张三(20160310001,1,3年2班)是“值”。

模式(Schema)是数据库中全体数据的逻辑结构和特征的描述,它仅仅描述型,而并不包括值。模式的值称为模式的一个实例(Instance),同一个模式可以有多个实例。虽然实际的DBMS系统种类很多,他们支持的数据模式不尽相同,使用不同的语言,建立在不同的OS上,数据的存储结构也各不相同,但他们在体系结构上通常具有相同的特征,即采用三级模式结构并提供两级映像功能。

1.2.1、三级模式

数据库的三级模式结构是指:数据库系统是由外模式、模式和内模式三级构成。如下图:

           

模式(Schema)
模式也称为:逻辑模式,它是DB中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式层是数据库模式结构的中间层,既不涉及到数据的物理存储细节和硬件环境,也与具体的应用程序、应用开发工具以及高级程序设计语言无关(C、C++、JAVA等)。模式就是数据库数据在逻辑上的视图,且一个数据库只有一个模式。实际工作中,模式就等同于程序员创建一个具体的数据库的全部操作,如:这是一个MySQL数据库,有2张表,每个表的名字,属性的名字、类型、取值范围,主键,外键,索引,其他完整性约束等等。DBMS提供模式描述语言(模式DDL)来严格地定义模式。

外模式
外模式也称为:子模式(subschema)/用户模式,它是数据库用户(应用程序员、最终用户)能够看到的使用的局部数据的逻辑结构和特征的描述,是数据库的数据视图,是与某一个应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式同一个外模式可以为某一用户的多个应用系统所使用,但一个应用系统只能使用一个外模式外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。DBMS提供子模式描述语言(子模式DDL)来严格地定义子模式。

内模式
内模式也称为:存储模式(Storage schema),一个数据库只有一个内模式。它是数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。如:记录的存储方式是堆存储,还是按照某些属性值的升(降)存储,还是按照属性值聚簇(cluster)存储;索引按照什么方式组织,是B+树索引,还是hash索引等等。DBMS提供内模式描述语言(内模式DDL/存储模式DDL)来严格定义内模式。

三级模式在关系型数据库的对应实现

三级模式是数据库系统通常采用的结构,但这并不意味着你必须按照三级模式结构设想的那样来编程。这是因为,各种类型数据库(层次、网状、关系)和各个具体数据库对三级模式的提供的支持是不完善和不一致的。可以看到三级模式都是DDL(DataDefinition language)来定义的,那么在RDBMS中三种模式的定义都包含在可以使用的DDL语句中:

外模式(DDL中的Subschema DDL部分)
在RDBMS中就只有一个视图(View)来支持 。当然视图提供的也只是一定程度的数据逻辑独立性。因为对于视图的更新是有条件的,因此当应用程序有需要修改数据的语句时,仍然不得不去操作基本表。所以如果基本表改变了,那么应用程序还是要变。

模式(DDL中的Schema DDL部分)
模式就是基本表,但我觉得除了视图和索引组织方式等等之外都是模式的范围。表、字段、索引、存储过程、触发器等等

内模式(DDL中的Storage DDL部分)
内模式是存储文件,但存储文件的存储方式和结构可以被定义,这一部分能操作的情况比较少,举一个例子如MySQL中创建table并且制定使用MEMORY引擎、使用hash索引。
   CREATE TABLE testhash ( 

       fnameVARCHAR(50) NOT NULL, 

       lnameVARCHAR(50) NOT NULL, 

       KEY USINGHASH(fname) 

   )ENGINE=MEMORY;

1.2.2、二级映像功能

数据库的3级模式是对数据的3个抽象级别。它使得用户能够逻辑地抽象地处理数据,而不必再去关心数据在计算机中的具体表示方式与存储方式。实际上,为了能够实现在这3个抽象层次之间的联系和转换,DBMS在这三级模式之间设计了两层映像:

  • 外模式/模式映像
  • 模式/内模式映像

这两层映像保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性。

1、外模式/模式映像

由上可知:一个DB只有一个模式,但可以有多个外模式。所以,对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了这个外模式与模式的对应关系。外模式的描述中通常包含了这些映像的定义。当模式改变时(增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像作相应的改变,可以使得外模式保持不变。而又由于应用程序应该是依据外模式编写的,从而应用程序不必修改,这就保证了数据与程序的逻辑独立性。

总结:外模式/模式映像保证了当模式改变时,外模式不用变 — 逻辑独立性。

2、模式/内模式映像
由上可知:一个DB只有一个模式,也只有一个内模式,所有模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。当数据库的存储结构改变时(例如选用了另一个存储结构),由数据库管理员对模式/内模式映像作出相应的改变,可以使得模式保持不变,从而应用程序也不必改变。这就保证了数据和程序的物理独立性。

总结:模式/内模式映像保证了当内模式改变时,模式不用变 — 物理独立性。

1.3、主码、外码、候选码、超码

码是数据系统中的基本概念。所谓码就是能唯一标识实体的属性,它是整个实体集的性质,而不是单个实体的性质。

1、超码
超码是一个或多个属性的集合,这些属性可以让我们在一个实体集中唯一地标识一个实体。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。

2、候选码
候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码,它们的任意真子集都不能成为超码。

3、 主码
主码是从多个候选码中选出的,如果候选码只有一个,那么候选码就是主码。在一个关系(表)中,主码不一定只有一个,但是一定要有的,在一个关系中,不同元组的主码一定不能为空,且值一定要不同。主码又称为主键。

4、外码
如果一个关系中的一个属性是另外一个关系中的主码则这个属性为外码。外码的值要么为空,要么要为其对应的主码中的一个值。外码又被称为外键。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库是一个用于存储、管理和查询数据的工具。它是一个有组织的集合,可以通过计算机进行访问和操作。数据库中的数据以表格的形式组织,并且可以通过特定的编程语言来对数据库进行操作和管理。 ADO(ActiveX Data Objects)是一种用于访问和操作数据库的编程工具,它通过连接数据库、执行命令和查询数据来实现对数据库的操作。在使用ADO进行数据库编程时,我们可以通过连接数据库创建新的数据库,以及在数据库中创建数据表。 在创建数据库时,我们首先需要选择一个合适的数据库管理系统(DBMS),比如Microsoft SQL Server、MySQL或者Oracle。然后,通过ADO的连接对象和命令对象,我们可以连接到数据库并执行创建数据库的操作。例如,对于Microsoft SQL Server,我们可以使用ADO的连接字符串来指定连接数据库的信息,并通过执行CREATE DATABASE语句来创建新的数据库。 在数据库创建完成之后,我们可以通过ADO创建数据表。这里我们可以使用ADO的命令对象来执行CREATE TABLE语句,指定表格的名称和字段信息,从而在数据库中创建新的数据表。比如,我们可以通过指定字段的名称、数据类型和约束条件来定义数据表的结构,实现数据库的设计和建立。 通过ADO编程创建数据库及数据表,可以实现对数据库的灵活管理和操作,为我们的数据存储和管理提供了强大的工具和支持。同时,通过了解数据库基本概念和使用ADO进行编程,我们可以更好地理解和利用数据库技术,为数据管理和应用开发提供更加强大的支持和解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值