• 数据库基础


    1. 什么是数据库?

    数据库: database, 存储数据的仓库

    数据库: 高效的存储和处理数据的介质(介质主要是两种: 磁盘和内存)

    2. 数据库的分类?

    数据库基于存储介质的不同: 进行了分类,分为两类: 关系型数据库(SQL)和非关系型数据库(NoSQL: Not Only SQL, 不是关系型的数据库都叫做非关系型数据库)

    3. 不同的数据库阵营中的产品有哪些?

    关系型数据库

    大型: Oracle, DB2

    中型: SQL-SERVER, Mysql等

    小型: access等

    非关系型数据库: memcached, mongodb, redis(同步到磁盘)

    4. 两种数据库阵营的区别?

    关系型数据库: 安全(保存磁盘基本不可能丢失), 容易理解, 比较浪费空间(二维表)

    非关系型数据库: 效率高, 不安全(断电丢失)

    关系型数据库

    1. 什么是关系型数据库?

    关系型数据库: 是一种建立在关系模型(数学模型)上的数据库.

    关系模型: 一种所谓建立在关系上的模型. 关系模型包含三个方面:

    数据结构: 数据存储的问题, 二维表(有行和列)

    操作指令集合: 所有SQL语句

    完整性约束: 表内数据约束(字段与字段), 表与表之间约束(外键)

    2. 关系型数据库的设计?

    关系型数据库: 从需要存储的数据需求中分析, 如果是一类数据(实体)应该设计成一张二维表: 表是由表头(字段名: 用来规定数据的名字)和数据部分组成(实际存储的数据单元)

    二维表: 行和列

    表头

    字段名1

    字段名2

    数据单元

    数据1

    数据2

    以实际案例来进行处理: 分析一个教学系统, 讲师负责教学, 教学生, 在教室教学生.

    ①找出系统中所存在的实体: 讲师表, 学生表, 班级表

    ②找出实体中应该存在的数据信息

    讲师: 姓名,性别,年龄,工资

    学生: 姓名,性别,学号,学科

    班级: 班级名字, 教室编号

    关系型数据库: 维护实体内部, 实体与实体之间的联系.

    实体内部联系: 每个学生都有姓名,性别, 学号,学科信息

    姓名

    性别

    学号

    学科

    年龄

    陈明

    Itcast0001

    PHP

    20

    陈晶晶

    Itcast0002

    PHP

     

    王威

     

    Itcast0003

    UI

     

    第二行的所有字段, 都是在描述陈明这个学生(内部联系); 第二列只能放性别(内部约束)

    关系型数据库的特点之一: 如果表中对应的某个字段没有值(数据), 但是系统依然要分配空间: 关系型数据库比较浪费空间

    实体与实体之间的联系: 每个学生肯定属于某个班级, 每个班级一定有多个学生(一对多)

    学生表

    姓名

    性别

    学号

    学科

    年龄

    陈明

    Itcast0001

    PHP

    20

    陈晶晶

    Itcast0002

    PHP

     

    王威

     

    Itcast0003

    UI

     

    班级表

    班级名称

    教室编号

    PHP0810

    B205

    PHP0710

    A203

    解决方案: 在学生表中增加一个班级字段来指向班级(必须能够唯一的找到一个班级信息)

    姓名

    性别

    学号

    学科

    年龄

    班级名称

    陈明

    Itcast0001

    PHP

    20

    PHP0810

    陈晶晶

    Itcast0002

    PHP

     

    PHP0810

    王威

     

    Itcast0003

    UI

     

    UI0810

    学生实体与班级实体的关联关系: 实体与实体之间的关系

    关键字说明

    数据库: database

    数据库系统: DBS(Database System): 是一种虚拟系统, 将多种内容关联起来的称呼

    DBS = DBMS + DB

    DBMS: Database Management System, 数据库管理系统, 专门管理数据库

    DBA: Database Administrator,数据库管理员

    行/记录: row/record, 本质是一个东西: 都是指表中的一行(一条记录): 行是从结构角度出发,记录是从数据角度出发

    列/字段: column/field, 本质是一个东西

    SQL

    SQL: Structured Query Language, 结构化查询语言(数据以查询为主: 99%是在进行查询操作)

    SQL分为三个部分

    DDL: Data Definition Language, 数据定义语言, 用来维护存储数据的结构(数据库,表), 代表指令: create, drop, alter等

    DML: Data Manipulation Language, 数据操作语言, 用来对数据进行操作(数据表中的内容), 代表指令: insert, delete,update等: 其中DML内部又单独进行了一个分类: DQL(Data Query Language: 数据查询语言, 如select)

    DCL: Data Control Language, 数据控制语言, 主要是负责权限管理(用户), 代表指令: grant,revoke等

    SQL是关系型数据库的操作指令, SQL是一种约束,但不强制(类似W3C): 不同的数据库产品(如Oracle,mysql)可能内部会有一些细微的区别.

    Mysql数据库

    Mysql数据库是一种c/s结构的软件: 客户端/服务端, 若想访问服务器必须通过客户端(服务器一直运行, 客户端在需要使用的时候运行).

    交互方式

    1. 客户单连接认证: 连接服务器, 认证身份: mysql.exe -hPup

    clip_image002

    2. 客户端发送SQL指令

    3. 服务器接收SQL指令: 处理SQL指令: 返回操作结果

    4. 客户端接收结果: 显示结果

    clip_image003

    5. 断开连接(释放资源: 服务器并发限制): exit/quit/q

    Mysql服务器对象

    没有办法完全了解服务器内部的内容: 只能粗略的去分析数据库服务器的内部的结构.

    将mysql服务器内部对象分成了四层: 系统(DBMS) -> 数据库(DB) -> 数据表(Table) -> 字段(field)

    clip_image002[4]

  • 相关阅读:
    2月份热门的 24 个 jQuery 插件
    走近求伯君1 求伯君,1964年11月26日出生于浙江新昌县。
    转CSDN,13原则
    SQL Server数据库如何正确加密?
    Zend Studio提供zend studio教程、zend studio下载等相关资源的公益性站点。 订阅
    高端人才必看,生意人必读
    有速度才有效率,支持Google gear离线的网站和应用
    2009.08.20总结与微软中国开发部经理段老师的通话无锡德立解决方案
    从SOA、SaaS到博科自主配置平台
    MySQL 1045错误的解决方法
  • 原文地址:https://www.cnblogs.com/snailshadow/p/MySQL_day01.html
Copyright © 2020-2023  润新知