1.数据库与数据库管理系统
1.1数据库的相关概念
DB:数据库(Database) |
即存储数据的“仓库”,其本质是一个文件系统。它保存了一系列有组织的数据。 |
DBMS:数据库管理系统(Database Management System) |
是一种操纵和管理数据的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据。 |
SQL:结构化查询语言(Structured Query Language ) |
专门用来与数据库通信的语言 |
1.2数据库与数据库管理系统的关系
数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据。
2.MySQL介绍
2.1概述
- MySQL是一个开放源代码的关系型数据库管理系统,由瑞典MySQLAB(创始人Michael Widenius)公司1995年开发,迅速成为开源数据库的No.1。
- 2008年被Sun收购(10亿美金),2009年被Oracle收购。MariaDB应运而生。
- MySQL6.x 版本之后分为 社区版 和 商业版 。
- MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有的数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL是开源的。
- MySQL支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持 4GB ,64位系
统支持最大的表文件为 8TB 。 - MySQL使用 标准的SQL数据语言 形式。
- MySQL可以允许运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、
Java、Perl、PHP和Ruby等。
3.关系型数据库设计规则
- 一个数据库中可以有多个表,每个表都有一个名字,用来标识自己。表名具有唯一性。
- 表具有一些特性,这些特性定义了数据在表中如何存储,类似Java和python中“类”的设计。
3.1表、记录、字段
- E-R(entity-relationship,实体联系)模型中有三个主要概念是:实体集、属性、联系集。
- 一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。一个属性(attribute)对应于数据表中的一列(column),也称为一个字段(field)。
3.2表的关联关系
- 表与表之间的数据记录有关系(relationship)。现实世界中的各种实体以及实体之间均用关系模型来表示。
- 四种关系:一对一关联、一对多关联、多对多关联、自我引用
3.2.1一对一关联(one-to-one)
- 在实际开发中应用不多,因为一对一可以创建成一张表。
- 举例:设计学生表:学号、姓名、手机号、班级、身份证号码、家庭住址……
3.2.2一对多关系
常见实例场景:客户表和订单表,分类表和商品表,部门表和员工表。
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
3.3.3多对多(many-to-many)
要表示多对多关系,必须创建第三个表,该表通常称为联接表,他将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。