点击上方“罗晓胜”,马上关注,您的支持对我帮助很大
上期文章
/ 前言 /
数据库是什么,首先我们要知道数据是什么。
数据是一切程序流转的开始,程序设计中也是将数据放在首位的。
程序即数据,万物皆数据。
为什么需要有数据库,数据放到纸上行不行,当然可以,放到文件中,也不是不行。但是那样适合大规模开发吗,能保证程序的正确和安全吗,能保证查询数据的效率吗,正是因为有了数据管理的需求,然后才有了数据库。
/ 正文 /
要点
1. 数据管理、数据库、数据模型的基本概念及发展历史 2. 数据库管理系统, 数据库系统应用介绍 3. 数据模型及数据库体系结构介绍 4. 数据库特征、体系结构、常用概念对象、安全机制 5. 安装数据库软件和创建数据库、表
数据管理
数据管理的进展 –
-
数据:是指所有能输入到计算机中并被计算机程序处理的符号的总称。–
-
数据处理:• 是指对各种形式的数据进行收集、储存、加工和传播的一系列 活动的综合。其目的是从大量的、原始的数据中抽取、推导出 对人们有价值的信息。–
-
数据处理的3个阶段:• 人工管理阶段 • 文件系统阶段 • 数据库系统阶段
什么数据库(Database)
数据库是这样的数据集合:
-
长期存储在计算机(数据库服务器)内==>保障安全
-
有组织的管理,具有较小的冗余==>有效管理,数据独立
-
可共享的,多个用户可以对包含的数据进行共享 ==> 并发控制,权限控制等
数据库管理系统
数据库管理系统(Database Management System-DBMS):
– 是一种管理数据库的软件。数据库管理系统是为数据库的建立、使用和维 护而配置的软件。它建立在操作系统的基础上,对数据库进行统一的管理 和控制。
用户使用的各种数据库命令已经应用程序的执行,都要通过数据 库管理系统。数据库管理系统还承担着数据库的维护工作。
– 在数据库内,数据库仅仅是指文件集合,这些文件用来存储和管理相关 数据,包括数据文件、控制文件以及重做日志文件。
数据库管理系统的主要功能:
– 1.数据库定义功能:DDL
– 2.数据存取功能:DML
– 3.数据库运行管理,这是DBMS运行时的核心部分,包括并发控制、存取控 制(安全性检查)、完整性约束条件的检查和执行、数据库内部的维护等 等。
– 4.数据库的建立和维护功能
数据库系统
数据库系统(DataBase System) – 是指在计算机系统中引入数据库后的系统,是一个实际可运 行的,按照一定的数据模型存储,维护并向应用系统提供数 据或信息支持的系统 ,
它由以下部分组成 :
• 数据库(Database,DB)
• 数据库管理系统(Database Management System, DBMS)
• 应用系统开发工具(程序设计软件)
• 数据库管理员(Database Administrator, DBA)
• 用户(User)
数据模型
数据模型:是数据库系统中用于提供信息表示和操作手段的一种 形式架构。
• 数据模型的几个层次:
– 1、概念数据模型:
– 2、逻辑数据模型:
– 3、物理数据模型:
概念数据模型:
– 简称概念模型,是面向用户的现实世界的模型,主要用来描 述世界的概念化结构,它使数据库的设计人员在设计的初始 阶段,摆脱计算机系统及DBMS的具体技术问题,集中精力 分析数据以及数据之间的联系等,与具体的数据管理系统 (Database Management System,简称DBMS)无关。概 念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
– 是现实世界到信息世界的第一层抽象,是用户和数据库设计 人员之间进行交流的语言。
• 在概念数据模型中最常用的是E-R模型、扩充的E-R模型、面向 对象模型及谓词模型。
逻辑数据模型:
– 简称数据模型,这是用户从数据库所看到的模型,是具体的 DBMS所支持的数据模型,如网状数据模型(Network Data Model)、层次数据模型(Hierarchical Data Model)等等。此模 型既要面向用户,又要面向系统,主要用于数据库管理系统 (DBMS)的实现。
– 用于机器世界,通常需要有严格的形式化定义,而且常常会 加上一些限制或规定,以便于机器上的实现。
• 在逻辑数据类型中最常用的是层次模型、网状模型、关系模型。
物理数据模型:
– 简称物理模型,是面向计算机物理表示的模型,描述了数据在储存 介质上的组织结构,它不但与具体的DBMS有关,而且还与操作系 统和硬件有关。每一种逻辑数据模型在实现时都有其对应的物理数 据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模 型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊 结构。
• 数据模型的三要素:
– 数据结构:对系统静态特性的描述
– 数据操作:对系统动态特性的描述
– 数据的约束条件:对完整性规则的描述
数据库发展历史:经历三个阶段
– 第一阶段:层次数据库(代表产品是1969年IBM公司研制的 层次模型数据库管理系统IMS。)
– 第二阶段:网状数据库 (目前大部分数据库采用的是关系型 数据库。1970年IBM公司的研究员E.F.Codd提出了关系模 型。其代表产品为sysem R和Inges。)
– 第三阶段:关系数据库 (第三代数据库将为更加丰富的数 据模型和更强大的数据管理功能为特征,以提供传统数据库 系统难以支持的新应用。它必须支持面向对象,具有开放性, 能够在多个平台上使用。)
关系数据库中有三种方式 :l 一对一关系 l 一对多关系 l 多对多关系
关系数据模型
当前3种主要的逻辑模型:
– 层次模型:
– 网状模型:
– 关系模型:
• 关系:对应于一张二维表
• 元组:对应一行
• 属性:对应一列
• 主码:某个属性组,唯一的表示一行
• 域:属性的取值范围
• 分量:元组中的一个属性值
• 关系名:对关系的描述
关系数据库的数据结构 – 关系数据库是指一些相关的表和其他数据库对象的集合。
对于关系数据库来说,关系就是表的同义词。表是由行和列组成(类似二维数组的结构)。
• 列包含一组命名的属性(也称字段)。
• 行包含一组记录,每行包含一条记录。
• 行和列的交集称为数据项,指出了某列对应的属性在某 行上的值,也称为字段值。
• 列需定义数据类型,比如整数或者字符型的数据。
常见关系数据库
– Oracle
– MySQL
– Microsoft SQL Server
数据库的特征
• 支持海量存储、多用户并发高性能事务处理。
• 多种备份和恢复策略。包括高级复制,物理和逻辑的24*7备份 和恢复工具,异地容载实现等。
• 开放式联结。给各种其他应用提供了统一的接口,并可以接入 很多其他传统应用程序。
• 遵循SQL语言规范,支持各种操作系统、用户接口和网络通信 协议的工业标准。
• 第一个实现网格计算的数据库
• 应用集群实现可用性和可伸缩性
• 业界领先的安全性
体系结构
数据库核心文件:
– 数据文件(Data files):存放的是用户的数据和系统的数据,一个数据 库一般会包含多个数据文件,数据文件的逻辑组织形式为表空间tablespace , 一个表空间内可以含有多个数据文件,数据库内可以有多个表空间。
– 重做日志文件(Redo Log Files):日志文件是二进制文件,记录了系统改变的 日志,主要用于数据库的恢复。因此,称为“重做日志文件”。
– 控制文件(Control files):记录数据库的一些核心配置数据。
• 参数文件(Parameter file):– 参数文件是在实例启动的时候,配置实例运行相关的一些参数(比如内存分配 的大小,实例运行出错的日志存放位置等)。
数据库对象
对象 | 说明 |
---|---|
表 | 表是用来存放用户数据的对象,由行和列组成,列就是字段,行就是表中的记录 |
约束 | 保证数据完整性的规则,设置在单个字段或者多个字段组合上,写入这些字段的 数据必须符合约束的限制 |
视图 | 虚表,是一个命名的查询,用于改变基表数据的显示,简化查询。访问方式与表 相同,同样可使用查询语句 |
索引 | 构建于表的单字段或者字段组合上,用于加速对表中数据的查询 |
序列 | 产生顺序的不重复数字串,被作为主键约束值的参照 |
同义词 | 数据库对象的别名 |
存储过程 | 用于完成某种特定的功能的PL/SQL程序,存储在数据库中 |
函数 | 用于进行复杂计算的PL/SQL函数,返回一个计算结果,存储在数据库中 |
触发器 | 由事件触发而执行的PL/SQL程序,用于在特定的时机执行特定的任务,存储在数 据库中 |
包 | 一组相关的函数和存储过程的命名集合,存储在数据库中 |
数据库安全
对象 | 说明 |
---|---|
用户 | 用于组织和管理数据库对象,通常一个应用软件的数据库对象被存放在一个数据 库用户下。使用数据库用户连接数据库后,可以对这些数据库对象执行操作。 |
方案 | 数据库对象的命名集合,一个方案唯一对应一个数据库用户,方案的命名与用户 命名完全相同,访问数据库对象的时,采取“方案名.对象名”的方式来访问 |
权限 | 权限决定了数据库用户在数据库中能够做什么,如果用户没有权限,那么对数据 库不能执行任何操作。权限由高权限用户授予。 |
角色 | 一组命名的权限,用户简化对权限的管理操作,可以一次将多个权限(一个角色 的权限)授予一个或多个用户。 |
配额 | 当用户创建存储对象(如表、索引)时,需要一定的数据库的存储空间来存放这 些对象,配额就是分配给用户的可使用存储空间的限制。 |
安装软件和数据库
本系列文章的数据库都采用 mysql 演示操作,下载可以去官网:https://www.mysql.com/
数据管理工具使用Navicat Premium,软件需要破解,mac用户去xclient下载即可:https://xclient.info/
详见:https://github.com/soonphe/0-1Learning/tree/master/other
创建数据库
1. 启动本地数据库(安装好的mysql启动就不用关闭了) 2. 新建本地Connection连接(这一步是连接上本地的数据库,也可以连接远程) 3. 新建数据库New DataBase(一个连接可能会有多个库,一个库会有多张表) 4. 新建表表Table,在Tables中新建表New Table(表就是最小的orm实体映射单元,表就是我们日后常用的操作对象) 5. 新建字段属性,输入名称Name,类型Type(这里选择Varchar即可),然后保存 6. 新建一条记录,双击打开刚创建好的表,左下角Add record,随便输入字符串,保存,然后数据就保存下来了
/ 总结 /
本文主要讲了数据入门的基础,了解数据的运转,数据与程序之间的联系,学好数据库和数据结构,不仅仅是理论要熟悉,更要实际多敲一些命令去联系。
往期推荐:
关注我的公众号,学习技术或投稿
长按上图,识别图中二维码即可关注