《传智播客PHP数据库00-基础知识》由会员分享,可在线阅读,更多相关《传智播客PHP数据库00-基础知识(5页珍藏版)》请在金锄头文库上搜索。
1、传智播客 传智播客: PHP 数据库 00-基础知识数据库课程体系在 PHP 阶段,将数据库分为三个阶段:基础阶段:mysql 数据库的基本操作 (增删改查), 以及一些高级操作( 视图, 触发器,函数,存储过程等), 和 PHP 操作 mysql 数据库优化阶段: 如何提高数据库效率 , 如索引, 分表等部署阶段: 如何搭建真实的环境系统 , 如服务器集群, 负载均衡数据库基础1. 什么是数据库?数据库: database, 存储数据的仓库数据库: 高效的存储和处理数据的介质 (介质主要是两种: 磁盘和内存)2. 数据库的分类?数据库基于存储介质的不同: 进行了分类,分为两类: 关系型数据库
2、 (SQL)和非关系型数据库(NoSQL: Not Only SQL, 不是关系型的数据库都叫做非关系型数据库)3. 不同的数据库阵营中的产品有哪些?关系型数据库大型: Oracle, DB2中型: SQL-SERVER, Mysql 等小型: access 等非关系型数据库: memcached, mongodb, redis(同步到磁盘)4. 两种数据库阵营的区别?关系型数据库: 安全(保存磁盘基本不可能丢失), 容易理解, 比较浪费空间( 二维表)非关系型数据库: 效率高, 不安全 (断电丢失)关系型数据库1. 什么是关系型数据库?关系型数据库: 是一种建立在关系模型 (数学模型)上的数
3、据库.关系模型: 一种所谓建立在关系上的模型 . 关系模型包含三个方面:传智播客 数据结构: 数据存储的问题, 二维表(有行和列)操作指令集合: 所有 SQL 语句完整性约束: 表内数据约束(字段与字段), 表与表之间约束( 外键) 2. 关系型数据库的设计?关系型数据库: 从需要存储的数据需求中分析, 如果是一类数据(实体) 应该设计成一张二维表: 表是由表头(字段名: 用来规定数据的名字) 和数据部分组成(实际存储的数据单元)二维表: 行和列表头 字段名 1 字段名 2数据单元 数据 1 数据 2以实际案例来进行处理: 分析一个教学系统 , 讲师负责教学, 教学生, 在教室教学生.找出系统
4、中所存在的实体: 讲师表, 学生表, 班级表找出实体中应该存在的数据信息讲师: 姓名,性别,年龄,工资学生: 姓名,性别,学号,学科班级: 班级名字, 教室编号关系型数据库: 维护实体内部 , 实体与实体之间的联系.实体内部联系: 每个学生都有姓名 ,性别, 学号,学科信息姓名 性别 学号 学科 年龄陈明 男 Itcast0001 PHP 20陈晶晶 女 Itcast0002 PHP王威 Itcast0003 UI第二行的所有字段, 都是在描述陈明这个学生(内部联系); 第二列只能放性别( 内部约束) 关系型数据库的特点之一: 如果表中对应的某个字段没有值(数据), 但是系统依然要分配空间:
5、关系型数据库比较浪费空间实体与实体之间的联系: 每个学生肯定属于某个班级 , 每个班级一定有多个学生(一对多)学生表姓名 性别 学号 学科 年龄陈明 男 Itcast0001 PHP 20陈晶晶 女 Itcast0002 PHP王威 Itcast0003 UI班级表班级名称 教室编号PHP0810 B205PHP0710 A203解决方案: 在学生表中增加一个班级字段来指向班级 (必须能够唯一的找到一个班级信息)传智播客 姓名 性别 学号 学科 年龄 班级名称陈明 男 Itcast0001 PHP 20 PHP0810陈晶晶 女 Itcast0002 PHP PHP0810王威 Itcast0
6、003 UI UI0810学生实体与班级实体的关联关系: 实体与实体之间的关系关键字说明数据库: database数据库系统: DBS(Database System): 是一种虚拟系统, 将多种内容关联起来的称呼DBS = DBMS + DBDBMS: Database Management System, 数据库管理系统, 专门管理数据库DBA: Database Administrator,数据库管理员行/记录: row/record, 本质是一个东西: 都是指表中的一行(一条记录): 行是从结构角度出发,记录是从数据角度出发列/字段: column/field, 本质是一个东西SQLS
7、QL: Structured Query Language, 结构化查询语言(数据以查询为主: 99%是在进行查询操作)SQL 分为三个部分DDL: Data Definition Language, 数据定义语言, 用来维护存储数据的结构 (数据库,表), 代表指令: create, drop, alter 等DML: Data Manipulation Language, 数据操作语言, 用来对数据进行操作 (数据表中的内容), 代表指令: insert, delete,update 等: 其中 DML 内部又单独进行了一个分类: DQL(Data Query Language: 数据查询
8、语言, 如 select)DCL: Data Control Language, 数据控制语言, 主要是负责权限管理 (用户), 代表指令: grant,revoke 等SQL 是关系型数据库的操作指令, SQL 是一种约束,但不强制(类似 W3C): 不同的数据库产品(如 Oracle,mysql)可能内部会有一些细微的区别.Mysql 数据库Mysql 数据库是一种 c/s 结构的软件: 客户端/ 服务端, 若想访问服务器必须通过客户端 (服务器一直运行, 客户端在需要使用的时候运行).传智播客 交互方式1. 客户单连接认证: 连接服务器 , 认证身份: mysql.exe -hPup2. 客户端发送 SQL 指令3. 服务器接收 SQL 指令: 处理 SQL 指令: 返回操作结果4. 客户端接收结果: 显示结果5. 断开连接(释放资源: 服务器并发限制): exit/quit/qMysql 服务器对象没有办法完全了解服务器内部的内容: 只能粗略的去分析数据库服务器的内部的结构.将 mysql 服务器内部对象分成了四层: 系统(DBMS) - 数据库(DB) - 数据表(Table) - 字段(field)传智播客