精华内容
下载资源
问答
  • 下面这位大佬写的非常棒,建议收藏 转载一个大佬的总结

    下面这位大佬写的非常棒,建议收藏
    转载一个大佬的总结

    展开全文
  • 逻辑结构设计是把概念结构设计阶段设计好的基本E-R转换为,与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。 E-R向关系模型的转换 将E-R转换为关系模型:将实体型、实体的属性和实体型之间的...

    逻辑结构设计

    逻辑结构设计是把概念结构设计阶段设计好的基本E-R图转换为,与选用数据库管理系统产品所支持的数据模型相符合的逻辑结构。

    E-R图向关系模型的转换

    将E-R图转换为关系模型:将实体型、实体的属性和实体型之间的联系转化为关系模式

    转换原则

    • 一个实体型转换为一个关系模式。
    1. 关系的属性:实体的属性
    2. 关系的码:实体的码
    • 实体型间的联系有以下不同情况

          (1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。

                          ① 转换为一个独立的关系模式

                                                关系的属性:与该联系相连的各实体的码以及联系本身的属性       

                                                 关系的候选码:每个实体的码均是该关系的候选码

                          ②与某一端实体对应的关系模式合并

                                             合并后关系的属性:加入对应关系的码和联系本身的属性

                                             合并后关系的码:不变

           (2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。

                          ①转换为一个独立的关系模式

                                          关系的属性:与该联系相连的各实体的码以及联系本身的属性

                                          关系的码:n端实体的码

                          ②与n端对应的关系模式合并

                                         合并后关系的属性:在n端关系中加入1端关系的码和联系本身的属性

                                        合并后关系的码:不变可以减少系统中的关系个数,一般情况下更倾向于采用这种方法

             (3)一个m:n联系转换为一个关系模式

                          关系的属性:与该联系相连的各实体的码以及联系本身的属性

                          关系的码:各实体码的组合

              (4)三个或三个以上实体间的一个多元联系转换为一个关系模式。

                             关系的属性:与该多元联系相连的各实体的码以及联系本身的属性

                             关系的码:各实体码的组合

              (5)具有相同码的关系模式可合并 目的:减少系统中的关系个数

                             合并方法:  将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),适当调整属性的次序

    数据模型的优化

    优化数据模型的方法:

    (1)确定数据依赖

               按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。

    (2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。

    (3)按照数据依赖的理论对关系模式进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。

    (4)按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。

    (5)对关系模式进行必要分解,提高数据操作效率和存储空间的利用率。

           常用分解方法:

    • 水平分解

                  把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。

    • 垂直分解

                 把关系模式R的属性分解为若干子集合,形成若干子关系模式。

    设计用户子模式

    定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。

    定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:

    1. 使用更符合用户习惯的别名
    2. 针对不同级别的用户定义不同的视图,以保证系统的安全性。
    3. 简化用户对系统的使用

     

    物理结构设计

    数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

    为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程,就是数据库的物理设计

    设计步骤:

    1. 确定数据库的物理结构
    2. 对物理结构进行评价
    3. 若评价结果满足原设计要求,则可进入到物理实施阶段。

    关系数据库物理设计的内容

    1.为关系模式选择存取方法(建立存取路径)    2.设计关系、索引等数据库文件的物理存储结构

    数据库管理系统常用存取方法

    1. B+树索引存取方法    2. Hash索引存取方法    3. 聚簇存取方法

    为什么要建立索引?  提高存取效率

    什么是聚簇?      为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块中称为聚簇。

    在一个基本表上最多只能建立一个聚簇索引

    确定数据库的存储结构

    • 确定数据库物理结构主要指确定数据的存放位置和存储结构,包括:确定关系、索引、聚簇、日志、备份等的存储安排和存储结构,确定系统配置等。
    • 确定数据的存放位置和存储结构要综合考虑存取时间、存储空间利用率和维护代价3个方面的因素。
    展开全文
  • 数据库设计应该是概念结构设计(E-R),逻辑结构设计(关系模式),物理结构设计(数据表,设计字段)三者共同组成的。 概念结构设计依据对于现实世界的关系的调研、了解、分析而后得到的实体对象有哪些,对象有...

    对于初学者来说,数据库设计中的概念、逻辑、物理结构设计三者更像是孪生兄弟,分不清他们各自是谁,主要有什么作用。偶然间查阅文献,看到一篇期刊中表述比较规范,特用相对容易理解的语言辨析三者关系,并借用期刊中的规范示意图仅供学习交流(期刊出处见参考文献,如有侵权,请联系删除)。
    数据库设计应该是概念结构设计(E-R图),逻辑结构设计(关系模式),物理结构设计(数据表,设计字段)三者共同组成的。

    在这里插入图片描述
    在这里插入图片描述

    概念结构设计依据对于现实世界的关系的调研、了解、分析而后得到的实体对象有哪些,对象有哪些特征,它们之间的关系是1对1,还是1对多,多对多。上述问题都梳理清楚后,就可以用关系图的方式表现出来概念结构,即实体关系图(E-R图)。
    在这里插入图片描述

    逻辑结构设计依据实体关系图可以得到有多少个实体,每个实体包含哪些属性(特征),实体与实体间的关系可通过哪些属性进行关联(这些实体间共有的属性就是主键或外键)。这就得到了关系模式,即:XX关系模式(XX属性1,XX属性2,……)。再根据关系规范化理论,将关系进行优化,消除数据冗余、插入异常、删除异常得到相对高级范式,满足数据的正常处理。
    在这里插入图片描述
    在这里插入图片描述

    物理结构即将逻辑结构中优化过的关系模式转化成一张张数据库中的关系表,每个属性用合适的类型和长度存储,并设置主键和相关约束,即可完成数据的设计,满足应用程序对于数据的存储、插入、删除要求。
    在这里插入图片描述
    参考文献:
    [1]祁黄雄,莫如聪.基于JSP技术的玉器旅游网购商城设计与实现[J].科技和产业,2021,21(05):87-92.
    知网网址:基于JSP技术的玉器旅游网购商城设计与实现

    展开全文
  • 数据库物理设计

    万次阅读 2018-04-22 09:08:33
    物理设计就是根据所选择的关系型数据库的特点对逻辑模型进行存储结构设计。它涉及的内容包含以下4方面:1. 定义数据库、表及字段的命名规范;2. 选择合适的存储引擎;3. 为表中的字段选择合适的数据类型;4. 建立...

    物理设计

    物理设计就是根据所选择的关系型数据库的特点对逻辑模型进行存储结构设计。它涉及的内容包含以下4方面:1. 定义数据库、表及字段的命名规范;2. 选择合适的存储引擎;3. 为表中的字段选择合适的数据类型;4. 建立数据库结构。

    定义数据库、表及字段的命名规范

    • 数据库、表及字段的命名要遵守可读性原则

    • 数据库、表及字段的命名要遵守表意性原则

    • 数据库、表及字段的命名

    存储引擎

    • MyISAM存储引擎是非事务的,锁粒度是表级的,主要应用于select,insert,不适合应用于读写操作频繁的场景,因为对于读写操作会进行锁表操作。
    • MRG_MYISAM和MyISAM差不多
    • Innodb存储引擎是支持事务,支持MVCC行级锁,适合任何场景
    • Archive存储引擎不支持事务,支持行级锁,支持insert、select,适用于随机读取、更新、删除。
    • Ndb Cluster是MySQL集群存储引擎 ,支持事务,支持行级锁,具有高可用性

    数据类型

    原则:当一个列可以选择多种数据类型时,应该优先考虑数值类型,其次是日期或二进制类型,最后是字符类型。对于相同级别的数据

    类型,应该优先选择占用空间小的数据类型。

    1. 数值类型

    数值类型可以分为整数类型和实数类型。

    image.png

    其中,M表示整数类型的最大显示宽度; 对于浮点和定点类型,M是可以存储的总位数(精度);对于字符串类型,M是最大长度。 M

    的最大允许值取决于数据类型。注意:当我们只存储两位数时,一种错误用法就是int(2),其实int(i)存储空间是由数据类型和是否是

    unsigned决定的,i只是表示显示长度。int(11)和int(1)的存储空间是没差别的, int(11)的数据长度如果小于11,则默认补充空格,如果

    int (11)字段被zerofill修饰,则默认补充0,而且字段被zerofill修饰会自动添加unsigned。因此,当我们只存储两位数时,使用tinyint才能

    达到我们简约空间的目的。

    注意:Decimal类型是精确类型的,如果我们需要存储精确数据,例如财务数据就必须使用Decimal类型,而不能使用float和double类型。

    2. 字符串类型

    字符串类型中有两种类型:char和varchar。
    image.png

    varchar(n)的存储规范
    • varchar存储变长内容,varchar需要额外的空间记录内容长度,当内容小于255字节时,需要一个额外字节,当内容大于255字节时,需要2个额外字节;

    • 在jbk编码下,char占2个字节,在UTF-8编码下,char占用3个字节;

    • MySQL每行最多存储65535个字节;

    • varchar中的第1个字节表示是否为空,第二个字节和第3个字节表示长度,剩下字节表示实际内容,因此最大可用存储65535-1-2=65532 ;

    create table t1(c varchar(n)) charset=gbk,则此处n的最大值为(65535-1-2)/2=32766
    
    create t(c int ,c2 char(30),c3 varchar(n)) charset=utf8,则此处n的最大值(65535-1-2-4-90)/3=21812

    * varchar(100)中的100指的是100个字符数量;

    • 使用场景:字符串列的最大长度比平均长度大很多字符串列很少被更新,由于varchar类型长度不固定,那么进行更新时,可

    能导致存储页的分裂,引起存储碎片;使用多字节字符集存储字符串,以UTF-8为例,存储中文需要3个字节,而存储英文或数字只需

    要1个字节。

    char(n)的存储规范
    • char类型是定长的;

    • 字符串存储在char类型的列中会删除末尾的空格(见下图);

    • char类型的最大宽度是255字节。

    • 适用场景: char类型适合存储长度近似的值,例如身份证、md5值,手机号等;char类型适合存储短字符串,例如性别字段,

    使用char(1)就比varchar(1)更节省空间,因为varchar还需要存储额外字节存储其他信息;char类型适合存储经常更新的字符序列

    由于char类型的长度是固定的,MySQL会一次性地分配存储空间,在多次更新时也不会出现页分裂的情况,减少存储碎片。

    image.png

    3. 日期类型

    image.png

    注意:timestamp占4byte,实际上是用int存储的。由于只有4byte,因此它只能显示1970-01-01 到 2038-01-19,也正是这个原因,如

    果在这个时间内的字段推荐使用timestamp。timestamp类型显示依赖于所指定的时区。除此之外,还需要注意一点,**在行的数据

    修改时可以自动修改timestamp列的值**,这个特性可以帮助我们在进行数据分析时自动提取出最新变化的数据。

    MySQL5.5 datetime类型字段不能设置默认值为now()

    MySQL5.6 datetime类型字段可以设置默认值为now()

    • from_unixtime():数字转换成时间

    • unix_timestamp():时间转换成数字

    • Date_sub/DATE_ADD:对时间进行加减

    • CURDATE():将当前日期按照’YYYY-MM-DD’

    • NOW():返回当前日期和时间值

    建立数据库结构

    1. DML(Data manipulation language,数据操作语言)

    • DML分成数据查询和数据更新两类,数据更新又分成插入、删除和修改三种操作,主要命令:select、insert、delete、update、merge、call、explain、plan

    2. DDL(Data definition language,数据定义语言)

    • DDL包括两种类型数据:数据字典以及数据类型和结构定义。主要命令:create 、alter、drop、truncate、rename、comment
    • Create,用于创建语句,用于创建表或者数据库或者存储过程或者其他内容
    create table tea(id int not null auto_increment,name varchar(6) not null,remark char(6),primary key(id));
    show create table tea;
    • Alter,一般用于添加或者修改表中的字段名或者字段定义。也可以用于修改字段顺序等。同样的也可以用于修改数据库的名字或者编码
    修改字段定义:
    ALTER TABLE emp MODIFY first_name VARCHAR(20) NOT NULL DEFAULT '-';  
    添加字段:
    alter table emp add column age int(3) not null default 0;  
    修改字段名字,同时修改定义:
    alter table emp change age age1 int(4) not null default 0;  
    在表Column的尾部追加新的column:
    alter table emp add birth date not null after empno;  
    移动column到表column的首位:
    alter table emp modify age1 int(3) not null default 0 first;  
    将某个column移动到另一个columon后面:
    alter table department change deptno deptno int(11) NOT NULL after deptname;  
    删除主键:
    alter visit_log drop primary key;  
    修改表名:
    alter table emp rename employees; 
    删除字段
    alter table guess_product_info  drop column backstyle;

    3. DCL(Data Control Language,数据控制语言)

    • 设置或更改数据库用户或角色权限,包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
    • grant
    赋予权限
    grant all privileges on *.* to 'root'@'localhost' with grant option; 授权远程用户注意不要with grant option
    grant select,update,create,delete on *.* to guest@'115.220.46.%' identified by 'test@home';创建业务用户,并要求只限制IP段
    查看权限
    Select user,password,host from mysql.user;
    Show grants for root@'localhost';
    select user,password,host ,grant_priv,super_priv from mysql.user;
    重命名用户
    rename mysql.user root@' ' to admin@' ';
    刷新权限
    flush privileges
    回收权限
    revoke select,insesrt,update,delete,create on *.* from 'guest'@'115.220.46.%';
    show grants for guest@'115.220.46.%';
    修改密码
    update mysql.user set password =password('test') where user='guest';password()函数对字符串进行MD5加密
    mysqladmin -uroot -ptest password 12345
                                        -p 旧密码  password 新密码
    
    忘记密码
    mysqld_safe --defaults-file=/etc/mysql/my3306.cnf --skip-grant-tables &
    删除用户
    drop user root@'';
    删除test数据库
    select * from mysql.db where db like '%test%'\G;
    delete from mysql.db where db like '%test%';
    删除不需要的用户
    
    mysql> select user,password,host from mysql.user;
    +------+-------------------------------------------+------------+
    | user | password                                  | host       |
    +------+-------------------------------------------+------------+
    | root |                                           | localhost  |
    | root |                                           | nbview.com |
    | root |                                           | 127.0.0.1  |
    | root |                                           | ::1        |
    |      |                                           | localhost  |
    |      |                                           | nbview.com |
    | kewy | kewy126@home                              | %          |
    | root | *08F411191A8F7130F09F0A961DB8E87983620D5B | %          |
    +------+-------------------------------------------+------------+
    8 rows in set (0.00 sec)
    mysql> delete from mysql.user where user='kewy';
    ERROR 2006 (HY000): MySQL server has gone away
    No connection. Trying to reconnect...
    Connection id:    59
    Current database: student_db1
    Query OK, 1 row affected (0.01 sec)
    mysql> delete from mysql.user where user='root' and host='::1';
    Query OK, 1 row affected (0.00 sec)
    mysql> delete from mysql.user where user='root' and host='nbview.com';
    Query OK, 1 row affected (0.00 sec)
    mysql> delete from mysql.user where host='nbview.com';
    Query OK, 1 row affected (0.00 sec)
    
    mysql> delete from mysql.user where host='localhost' and user is null;
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> delete from mysql.user where host='127.0.0.1' ;
    Query OK, 1 row affected (0.00 sec)
    mysql> select user,password,host from mysql.user;
    +------+-------------------------------------------+-----------+
    | user | password                                  | host      |
    +------+-------------------------------------------+-----------+
    | root |                                           | localhost |
    | root | *08F411191A8F7130F09F0A961DB8E87983620D5B | %         |
    +------+-------------------------------------------+-----------+
    2 rows in set (0.00 sec)

    4. TCL(Transaction Control Language,事务控制语言)

    • TCL用于控制事务内执行流程的语言
    • start transaction|Begin:开始一个事务
    • Savepoint:创建一个记录点,方便回滚到这个地方
    • Rollback:回滚事务
    • Commit:提交事务
    开始事务
    START TRANSACTION  
    可选:创建一个存档点
    SAVEPOINT sp  
    开始操作SQL
    select  
    insert  
    ...
    操作完成提交数据
    COMMIT  
    或者,操作失败,回滚数据(回滚到某个存档点)
    ROLLBACK  
    ROLLBACK TO sp  
    释放存档点
    RELEASE SAVEPOINT sp  

    总结

    在进行数据库物理设计时,我们需要计算每张表的存储空间, 选择存储引擎和表中的数据类型。


    image

    欢迎关注微信公众号:木可大大,所有文章都将同步在公众号上。

    展开全文
  • 系统数据库的概念结构、逻辑结构、物理结构设计

    千次阅读 多人点赞 2020-06-08 19:36:54
    将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计,最后生成的模型是E-R。 注: 1、先写局部E-R,再写整体的E-R 2、若所设计系统的实体、属性与联系很多,绘制出来的总E-R过于...
  • 数据库结构设计步骤,具体实例

    千次阅读 2019-05-18 15:04:59
    数据库结构设计的步骤 1.需求分析,全面了解产品设计的存储需求,要存储什么数据,这些数据有什么特点,数据处理的响应时间,是否是批量处理,数据的完整性确定要存储的真正数据,因为要和非开发的人员进行沟通 2....
  • 文章目录1. 数据库设计概述1.1 数据库设计的特点:结构和行为分离的设计1.2 ... 概念结构设计3.1 概念模型3.2 E-R模型1、实体之间的联系2、E-R 3、实体与属性的划分原则4、E-R 的集成4. 逻辑结构设计(未完待...
  • 数据库的逻辑结构和物理结构

    千次阅读 2017-11-11 18:36:30
    数据库的概念结构设计:需求分析阶段所得到的应用需求应该首先抽象成信息世界的结构,才能更好地、更准确地用某一DBMS实现。... 数据库物理结构设计数据库在物理设备上的存储结构和存取方法就称为数
  • oracle数据库物理结构及逻辑结构

    千次阅读 2017-09-02 18:24:17
     Oracle数据库物理结构由构成数据库的操作系统文件组成,它是从操作系统的角度来分析数据库的组成,在操作系统中可以看得到的文件,也就是说它是数据库在操作系统中的存储位置。常见的物理结构包括:控制文件、...
  • 数据库 - 物理设计

    万次阅读 2015-05-08 10:39:29
    为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计数据库物理设计的步骤 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构 对物理结构进行评价,评价的重点是...
  • 学生成绩管理系统数据逻辑结构设计 描述了数据库的基本逻辑结构即表的结构设计。其中不含有ER
  • 数据库结构设计

    万次阅读 2018-02-13 14:33:02
    为什么要学习数据表结构设计 实际开发中,需要根据需求,将实际模型转换成物理表结构,这时需要考虑几个问题,表名称如何命名,表中需要哪些字段,各个字段的命名规范,字段的数据类型,字段的长度,和其他表的联系...
  • 数据库设计(5)_物理结构设计

    千次阅读 2015-06-01 00:38:34
    物理结构设计,也即是设计数据在磁盘上的存储,需要考虑:安全(容灾)、性能(IO竞争少)、服务器资源利用率高。通常当前数据库只使用一份ONLINE的数据源,至于分布式存储已经上升到服务器架构的设计,这里不作...
  • 数据库——数据库结构设计

    千次阅读 2020-03-08 22:21:25
    3 数据库物理设计 数据库概念设计 概念设计 是数据库设计的 核心环节,通过对用户需求进行综合;归纳;与抽象,形成一个独立于DBMS 的概念模型 数据库概念设计的目标 1 定义与描述应用领域设计的数据范围 2 获取信息...
  • 数据库结构设计详细教程

    千次阅读 2020-02-20 19:35:42
    一、概述 数据模型的含义 是对客观事物及其联系的数据描述,即对现实世界(存在于人脑之外的客观世界)的模拟。...概念模型,它是按照用户的观点来对信息和数据建模,主要用于数据库设计,最常用的...
  • 学生毕业设计 小型企业管理 使用方便快捷 简单操作
  • 学籍管理系统的功能需求包括管理员、学生和教师对功能的需求的三大部分,文章内含系统功能模块,数据字典,ER、逻辑结构设计、物理结构设计等内容
  • 数据库结构设计方法及原则

    千次阅读 2020-12-01 22:30:43
    在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方法、设计时应遵从什么样的原则、四个范式如何能够用一种方式...
  • 任务2-4 逻辑结构设计;一般的逻辑设计分为以下3步;转换规则必须牢记;例2.2将下所示的含有11联系的E-R根据上述规则转换为关系模式;例2.3将下所示的含有1n联系的E-R根据上述规则转换为关系模式;例2.4将下所...
  • 我认为讲得很不错。本章重点: 1. 数据库设计的主要思想; 2. 数据库设计的步骤及其分解各项的设计方法。 。
  • 本文将为您描述数据库设计各个...  ⑷数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;  ⑸数据库的实施:包括编程、测试和试运行;  ⑹数据库运行与维护:系统的运行与数据库的日常维护。
  • 。。。。。。。网上商城设计(数据库设计_UML建模).
  • 教务管理系统的数据库物理模型。用powerdesigner打开。
  • 本文档为学生信息管理系统数据库设计文档,包含实体关系,局部E-R,总体E-R数据库结构等。
  • MYSQL性能优化之Mysql数据库结构设计

    千次阅读 2017-05-19 12:37:04
    数据库结构设置和SQL语句优化是最能提升性能的优化了,和项目进行持续优化 减少数据冗余(数据多次出现,或者一列数据可以通过其他列计算得到) 尽量避免数据维护中出现更新,插入和删除异常(可以利用范式化模型来...
  • 数据库结构设计

    千次阅读 2019-03-06 22:48:23
    数据库概念设计 ...保证信息模型方便的转换成数据库逻辑结构 1.2概念设计的依据: 需求分析的文档,需求说明书,功能模型(数据流或IDEF0) 信息模型(ER)和数据库概念说明书是数据库...
  • 自己用PowerBuilder做的图书管理系统,数据库课程设计,很好……O(∩_∩)O~
  • 数据库的逻辑结构设计

    万次阅读 多人点赞 2018-06-30 23:21:51
    由于目前使用的数据库基本上都是关系数据库,因此首先需要将E-R转换为关系模型,然后根据具体DBMS的特点和限制转换为特定的DBMS支持下的数据模型,最后进行优化。折叠编辑本段设计步骤( 1 ) 将概念结构转换为一般...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 127,178
精华内容 50,871
关键字:

数据库物理结构设计图

友情链接: PF-T2-1 Service Manual.zip