Database基础_关系数据模型

一、介绍(Relational Data Model)

1、起源和发展

  关系数据模型最早由英国计算机科学家Edgar Codd于1970年的一篇文献提出,并在1985年提出了科德十二定律,即关系模型的核心准则。关系数据模型是对数据库的关系方法关系数据研究的重要成果,它将数据归纳为多项集合,并以表格的形式进行可视化。

2、组成成分

  关系数据模型由三个主要成分构成:

数据结构(Data Structure):数据在数据库中的结构及其表达方式

数据操作(Data Manipulation):对数据进行操作的各种方法

数据完整性(Data Integrity):加强表内、表间的联系,以约束的形式实现,较为重要,后文主要对该成分进行分析

 

二、术语

1、表格

  • 数据库中最核心的就是其包含的各种表格(Table
  • Table是由各项记录(Records),即行(Rows)组成的
  • 同时的,Records也是各项字段(Fields),即列(Columns)的集合
  • 同一张表格中,所有的记录都拥有完全相同的字段

2、关系数据模型-结构

  1) 数据关系模型的理论结构

  • 在数据库中,数据被归纳为各种关系(Relations
  • 一组关系由各项元组(Tuple)构成
  • Tuples也是各项属性(Attributes)的集合
  • 同一组关系内的所有元组都拥有相同的属性
  • 一组关系内所有的属性项目称为一组关系的方案(Scheme

  2) 联系与区别-关于表格

  可能已经注意到了,关系模型的结构和表格有异曲同工之处,实际上,关系模型就是通过Table实现的,数据库的基础是建立在一套抽象的理论(即关系、元组、属性等术语)上的,但它必须有一个可视化的、可以传递信息的载体,因此数据库一般需要依托在表格上进行表现,而表格本身与数据库的理论构造没有任何联系

   尽管如此,我们依然将Table,Column,Row作为常用术语,毕竟易于理解。

三、SQL与数据完整性的解构

0、结构化查询语言(Structured Query Language)介绍

  1)结构化查询语言(SQL)是一种基于关系代数的,结构化的编程语言,他用来对关系数据库管理系统(Relational Database Management Systems, RDBMS)进行规划和处理。

  2)常见的数据定义语言(Data Definition Language,DDL)和数据处理语言(Data Manipulation Language,DML)有:INSERT, UPDATE, DELET, QUERY(SELECT), CREATE, ALTER, ACCESS, CONTROL(GRANT). 后续会有详解。

  3)常见的数据库操作平台:MySQL,Oracle,Postgres,SQLite等

  4)表格...?Excel...?

   Excel对于日常的数据处理有一定的优势,如便于理解、傻瓜式使用等,但Excel不具备保证数据完整性的能力,也疲于多张表格之间的联动和操作,所以并不适合用来实现数据库。(实际上Excel的功能已经极为丰富,数学建模算个权重已经绰绰有余,也可以实现表格合并的大部分功能,但对于数据库来说还是太吃力了)

 

  接下来对关系模型中三大成分的数据完整性进行解构,数据完整性本身主要用于规定在数据库中什么操作能被允许什么不能被允许。被细分为三大完整性。

 

1、域完整性(Domain Integrity)

  1)目的:控制每列的数据范围

  2)实现:  i) 每一项属性(每列)必须有一个名称和一个值域(Domain,即该列必须使用一个限定的范围内的数据,不得超出)

       ii) 每个值域都必须有限定的数据类型(INT,DATE,VARCHAR...),不仅如此有时需要添加更多的限制,如非空(NOT NULL)、检查(CHECK)、默认(DEFAULT)。

 

Tips:

  1)定义:键是用于对元组进行排序或标识的一项(或多项)属性,原本地,一组关系内的每项记录并没有行号之类用于标识每一行数据的特征属性,取而代之的是键的使用。

  2)分类:主键——一组关系内用于标识元组的键

        外键——跨关系引用,对应一个父键(存在于被引用表)

2、实体完整性(Entity Integrity

  1)目的:控制每行的数据不发生重复输入的情况,即不得出现完全相同的两行记录

  2)实现:i) 每个关系必须有一个主键,它可以由一个属性组成,也可以是多个

     ii) 主键必须是唯一的(每个元组的主键属性不得重复)不能为空(NOT NULL)

     iii) 被选为主键的属性必须用于区分该关系内部每个特定的元组

  实际上,主键的使用就确保了数据完整性的实体完整性,以上三点就是主键的使用规范

  例:

  在以上关系中,ID和Name均可以作为主键使用,但Major和Age由于存在重复的元素,无法单独用作主键。

3、引用完整性(Referential Integrity)

  1)目的:保护不同表格之间引用的完整性

  2)实现:  i) 在不更新原表的数据之前,不得随意更改引用表的数据

                 ii) 一个表中的外键需要引用自另外一表的属性(称之为父键,Parent Key),其取值范围不得出现父键中没有的数据

  例:

 如果我们在Exam中创建了一个引用了Student中ID的外键,那么他必须是父键(ID)中的1,2或3,不得出现其他数据。

 

  之后将记录SQL的具体编程语言和句法。

posted @ 2021-04-09 01:24  Makise_C  阅读(9)  评论(0编辑  收藏