当前位置:   article > 正文

MYSQL中概念模型的基本概念_数据库基本概念

外部模型的优点

一. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式

模型是对现实世界的抽象,在数据库技术中,我们用数据模型的概念描述数据库的结构和语义,对现实世界的数据进行抽象。从现实世界的信息到数据库存储的数据以及用户使用的数据是一个逐步抽象的过程,有如下四种:概念数据模型、逻辑数据模型、外部数据模型、和内部数据模型。

1、概念模型

a)定义:表达用户需求观点的数据全局逻辑结构的模型

b)特点:

i.概念模型表达了数据的整体逻辑结构,它是系统用户对整个应用项目涉及的数据的全面描述;

ii.概念模型是从用户需求观点出发,对数据建模;

iii.概念模型独立于硬件和软件;

iv.概念模型是数据库设计人员与用户之间进行交流的工具。

c)主要方法:概念模型主要采用的是实体联系(ER)模型,ER模型主要用ER图来表示。

d)ER图:ER图中把研究的对象分成实体和联系两大类,用矩形表示实体类型,菱形表示联系类型,椭圆形表示属性,实体标识符用属性下的一根下划线表示。

e)优点:

i.简单,容易理解,真实地反应用户的需求;

ii.是与计算机无关,用户容易接受。

a)定义:表达计算机实现观点的DB全局逻辑结构的模型,选定DBMS后,根据选定的DBMS的特点从概念模型转换成逻辑模型。

b)特点:

i.逻辑模型表达了DB的整体逻辑结构,它是设计人员对整个应用项目数据库的全面描述;

ii.逻辑模型是从数据库实现的观点出发,对数据建模;

iii.逻辑模型独立于硬件,依赖于软件;

iv.逻辑模型是数据库设计人员与应用程序员之间交流的工具。

c)分类:

i.层次模型(Hierarchical model)

1.定义:用树形结构表示实体类型及实体间联系的数据模型。

2.数据联系:指针

3.数据结构:树结构

4.优点:记录之间通过指针来实现,查询效率较高

5.缺点:只能表示1:N联系;由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此编写程序也很复杂

6.代表:IMS

7.盛行:20世纪70年代

ii.网状模型(Network model)

1.定义:用有向图结构表示实体类型及实体间联系的数据模型

2.数据联系:指针

3.数据结构:有向图结构

4.优点:记录之间的联系通过指针实现,M:N也较容易实现,查询效率较高

5.缺点:数据结构复杂和编程复杂

6.代表:IDS,IMAGE/3000,IDMS,TOTAL

7.盛行:20世纪70-80年代中期

iii.关系模型(Relational Model)

1.定义:用二维表结构表示实体类型及实体间联系的数据模型

2.数据联系:通过二维表间的公共属性

3.数据结构:二维表

4.优点:记录之间的联系采用关键码实现,表格简单,用户易懂;用查询语句就可以实现对数据库操作,不设计存储结构和访问技术

5.缺点:更复杂的数据结构,如多媒体数据、多维表格数据显得力不从心

6.代表:Oracle,Sybase,DB2,SQL Server,Infomix

7.盛行:20世纪80年代到现在

3、外部模型

a)定义:表达用户使用观点的DB局部逻辑结构的模型。根据业务的特点划分成若干业务单位,每个业务单位都有特定的约束和需求

b)特点:

i.外部模型是逻辑模型的一个逻辑子集;

ii.外部模型独立于硬件,依赖于软件;

iii.外部模型反映了用户使用数据库的观点。

c)优点:

i.简化了用户的观点;

ii.有助于数据库的安全性保护;

iii.外部模型是对概念模型的支持。

4、内部模型

a)定义:表达DB物理结构的模型。又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘或磁带上的存储方式,存取设备和存取方法。

b)特点:

i.内部模型是与硬件和软件紧密相连的;

ii.内部模型反映了数据库的底层实现细节。

5、三层模式和两级映射

a)三层模式的定义:在用户到数据库之间,DB的数据结构有三个层次外部模型、逻辑模型和内部模型,这个三个层次使用数据定义语言(Data Definition Language,DDL)定义以后就称为模式(Schema),即外模式、逻辑模式和内模式。数据库的数据结构描述有三个层次:

i.外模式是用户与数据库系统的接口,是用户用到的那部分数据的描述

ii.逻辑模式是数据库中全部数据的整体逻辑结构的描述

iii.内模式是数据库在物理存储方面的描述。

b)三层模式体系结构的特点:

i.用户使用数据库的数据操纵语言(Data Manipulation Language,DML)语句对数据库进行操作,实际上是对外模式的外部记录进行操作;

ii.逻辑模式必须不涉及到存储结构、访问技术等细节;

iii.内模式并不涉及到物理设备的约束。

c)两级映射的定义:由于三层模式的数据结构可能不一致,即记录类型、字段类型的命名和组成可能不一样,因此需要三层模式之间的映像来说明外部记录、逻辑记录、内部记录之间的对应性。三层模式之间存在两级映像:

i.外模式/逻辑模式映像存在于外模式和逻辑模式之间,用于定义外模式和逻辑模式之间的对应性,这个映像一般放在外模式中描述

ii.逻辑模式/内模式映像存在于逻辑模式和内模式之间,用于定义逻辑模式和内模式之间的对应性,这个映像一般放在内模式中描述

d)飞

6、数据抽象的过程(即数据库设计的过程)

a)根据用户需求,设计数据库的概念模型

b)根据转换规则,把概念模型转换成数据库的逻辑模型

c)根据用户的业务特点,需根据逻辑模型设计不同的外部模型,给程序员使用,外部模型与逻辑模型之间的对应性称为映像

二. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control)

数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等

数据操纵:Select ,insert,update,delete,

数据控制:grant,revoke

三. SQL常用命令

CREATE TABLE Student(

ID NUMBER PRIMARY KEY,

NAME VARCHAR2(50) NOT NULL);//建表

CREATE VIEW view_name AS

Select * FROM Table_name;//建视图

Create UNIQUE INDEX index_name ON TableName(col_name);//建索引

INSERT INTO tablename {column1,column2,…} values(exp1,exp2,…);//插入

INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);//插入视图实际影响表

UPDATE tablename SET name=’zang 3’ condition;//更新数据

DELETE FROM Tablename WHERE condition;//删除

GRANT (Select,delete,…) ON (对象) TO USER_NAME [WITH GRANT OPTION];//授权

REVOKE (权限表) ON(对象) FROM USER_NAME [WITH REVOKE OPTION] //撤权

列出工作人员及其领导的名字:

Select E.NAME, S.NAME FROM EMPLOYEE E S

WHERE E.SUPERName=S.Name

四. 视图:

什么是视图:

视图(view):从一个或几个基本表中根据用户需要而做成一个虚表

1:视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据

2:视图只在刚刚打开的一瞬间,通过定义从基表中搜集数据,并展现给用户

视图与查询的区别:

视图和查询都是用由sql语句组成,这是他们相同的地方,但是视图和查询有着本质区别:

它们的区别在于:

1:存储上的区别:视图存储为数据库设计的一部分,而查询则不是.

2:更新限制的要求不一样

要注意:因为视图来自于表,所以通过视图可以间接对表进行更新,我们也可以通过update语句对表进行更新,但是对视图和查询更新限制是不同的,以下我们会知道虽然通过视图可以间接更新表但是有很多限制.

3:排序结果:通过sql语句,可以对一个表进行排序,而视图则不行。比如:创建一个含有order by子句的视图,看一下可以成功吗?

视图的优点:

为什么有了表还要引入视图呢?这是因为视图具有以下几个优点:

1:能分割数据,简化观点。可以通过select和where来定义视图,从而可以分割数据基表中某些对于用户不关心的数据,使用户把注意力集中到所关心的数据列.进一步简化浏览数据工作

2:为数据提供一定的逻辑独立性。 如果为某一个基表定义一个视图,即使以后基本表的内容的发生改变了也不会影响“视图定义”所得到的数据

3:提供自动的安全保护功能。 视图能像基本表一样授予或撤消访问许可权

4:视图可以间接对表进行更新,因此视图的更新就是表的更新

视图的创建和管理

视图的创建

1:通过sql语句

格式:create view 视图名 as select 语句

试一试:分别创建关于一个表或多个表的视图[因为视图可以来自于多表]

2:通过企业管理器

说明:

1:在完成视图的创立之后,就可以像使用基本表一样来使用视图

2:在创建视图时,并非所有的select子查询都可用,如:compute和compute by,order by[除非与top一起连用]

3:但在查询时,依然都可以用在创建时禁用的select子查询

4:在视图创建时,必须为没有标题列指定标题[思考:能否不用select语句来创建一个视图]

视图的删除:

1:通过sql语句:drop vie

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/680295
推荐阅读
相关标签
  

闽ICP备14008679号