数据库系统概念(原书第6版) 第一、二章关系数据库学习总结

第一、二章 引言与关系模型介绍

  • 数据库相关概念
  • 数据模型与模式
    • 关系模型
    • 实体联系模型
    • 基于对象的模型
    • 半结构化数据模型
  • 数据库语言
  • 关系模型介绍
    • 关系代数

数据库相关概念

数据库:长期储存在计算机内的有组织、可共享的相关数据的集合
数据库管理系统:由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。如DB的建立、查询、更新等。
数据库系统:通常指带有数据库的计算机应用系统,包括数据库、相应的硬件、软件和操作人员。

数据库系统包括了DBMS和DB

数据模型与模式

数据模型主要有关系模型实体-联系模型基于对象的模型半结构化数据模型

关系模型

就是在mysql中存储数据的模型数据库系统概念(原书第6版) 第一、二章关系数据库学习总结_第1张图片
关系:一张数据库表
元组:表中的一行
属性:表中的一列
主码:能唯一区分元组的属性
外码:连接本表与其他表
实体集:具有相同类型属性的一个实体集合,类似于一张关系表里的所有实体。

实体联系模型

即E-R图,主要包括如下几个构件:

  • 矩形代表实体集
  • 菱形代表联系集
  • 椭圆代表属性,其中构成主码的属性用下划线标明

基于对象的模型

广泛应用于python、java等面向对象语言,这里我列出一个django中数据库设计的代码。
我将Reader看作一个表,也就是一个关系,然后分别设计了 c a r d I d , n a m e , s e x , s t a t e , c a t e g o r y , l e v e l cardId,name,sex,state,category,level cardId,name,sex,state,category,level等属性以及他们的约束。

关系数据库三个完整性约束:
实体完整性,参照完整性,用户定义完整性

class Reader(models.Model):
    cardId = models.CharField(max_length=16,verbose_name='卡号')
    name = models.CharField(max_length=64,verbose_name='姓名')
    sex = models.CharField(max_length=16,verbose_name='性别')
    state = models.CharField(max_length=32,verbose_name='单位')
    category = models.CharField(max_length=32,verbose_name='类型')
    level = models.CharField(max_length=16,verbose_name='级别')
def __str__(self):
    return self.name

半结构化数据模型

XML是将数据库的信息标记在一个文件中,也就是可扩展标记语言。

<note>
<to>Georgeto>
<from>Johnfrom>
<heading>Reminderheading>
<body>Don't forget the meeting!body>
note>

数据库语言

数据库操纵语言DML:主要是增删改查,其中查询是最为复杂的。
s e l e c t < 属 性 名 ⋅ ⋅ ⋅ > f r o m   表 w h e r e   谓 词 条 件 o r d e r   b y 顺 序 g r o u p   b y   分 组 h a v i n g   分 组 后 的 条 件 select <属性名···> from \ 表 \\ where \ 谓词条件 \\ order\ by顺序\\group \ by \ 分组\\having \ 分组后的条件 select<>from where order bygroup by having ···
数据库定义语言DDL:主要是创建、修改、删除、表结构

关系模型介绍

关系的模式是指它的逻辑设计
关系的实例是指它的特定时刻的内容

关系代数

数据库系统概念(原书第6版) 第一、二章关系数据库学习总结_第2张图片

笛卡尔积:输出两个关系所有的匹配的元组对。
选择:输出符合条件的元组
投影:输出指定的属性,而不是元组的全部属性
自然连接:将一张表与另一张表的相同的属性进行匹配,将属性值相同的元组组合成一张新的表

后面我会详细的补充关系代数运算和SQL查询语言,这里就简单提一下。

你可能感兴趣的:(数据库,big,data,数据库,django,关系模型)