数据库设计怎么做

数据库设计怎么做,第1张

两个不同实体间的1:n关系

上图中表示的是一辆汽车与零件之间的1:n关系,一辆汽车由许多个零件构成。“汽车”这个实体具有型号、单价和牌号等属性,“零件”这个实体具有名称、单价和厂家等属性,“数量”是它们之间的关系“组成”的一个属性。

当然E-R图还可以表示1:1关系,例如夫妻关系以及姓名与学号间的关系等。

E-R图还可以表示m:n关系,例如教材中中讲的“学生”与“课程”之间通过“学习”联系,一个学生要学习多门课程,反之同一门课程有很多学生在学习。

在E-R图中,有时为了使其简洁明了,图中可以略去各属性,着重表示实体间的联系情况,而属性可以单独以表格形式单独列出。

4E-R图的设计

E-R图的设计虽然没有一个绝对固定的方法,但一般来说应遵循以下两条基本原则:

(1)首先要针对每一个用户做出该用户信息的局部E-R图,确定该用户视图的实体、属性和联系。

[注意]

在设计E-R图时,能作为属性的就不要作为实体,这样有利于E-R图的简化。

(2)把每一个局部的E-R图综合起来,产生出总体的E-R图。

[注意]

在E-R图的综合的过程中,同名实体只能出现一次,还要去掉不必要的联系,这样才能消除冗余。

一般来说,从总体E-R图必须能导出原来所有局部E-R视图,包括所有的实体、属性和联系。

任何一个系统的E-R图都不是惟一的,强调的侧面不同,所作出的E-R图就可能差别很大。总体的E-R图所表示的实体联系模型,只能说明实体间的联系关系,还需要把它转换成数据模型才能被实际的DBMS所接受。

233 从E-R图导出关系模型

E-R图是现实世界各实体的具体反映,与数据库具体实现毫无关系,但它却是构造数据模型的主要依据。本章的重点也是难点是:正确地应用E-R图反映实体间联系并从E-R图中导出关系模型。

1从E-R图中导出关系模型的原则

(1)对于E-R图中的每一个实体,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性(或哪几个属性组合)作为“主键”。键在关系模型中是实现联系的主要手段。

(2)对于E-R图中的联系,情况比较复杂,要根据实体联系的方式的不同,采取不同的手段加以实现。

2从E-R图中导出关系模型

(1)两实体间1:n联系

对于两实体间1:n联系,导出关系模型的原则是:可以将“1”方实体的“主键”纳入“n”方实体对应的关系中作为“外部键”,同时把联系的属性也一并纳入“n”方对应的关系中。

(2)同一实体内部个体间1:n联系

对于同一实体集内部个体间的1:n联系,导出关系模型的原则是:可在这个实体所对应的关系中多设一个属性,用来作为与该实体相联系的另一个体的“主键”。

(3)两实体间m:n联系

对于两实体间的m:n联系,导出关系模型的原则是:必须对“联系”单独建立一个关系,用来联系双方实体;该关系的属性中至少要包括被它所联系的双方实体的“主键”,并且如果联系有属性,也要归入这个关系中。

(4)同一实体内部存在m:n的联系

如果同一实体内部存在m:n的联系,那么从E-R图导出关系模型的原则是“为这个联系单独建立一个关系;该关系中至少应包括被它所联系的双方实体的“主键”,如果联系有属性,也要归入这个关系中。

(5)两个以上实体间m:n多元联系

对于两个以上实体之间的m:n多元联系,从E-R图导出关系模型的原则是:必须为联系单独建立一个关系,该关系中最少应包括被它联系的各个实体的“主键”,若是联系有属性,也要归入这个关系中。

(6)两实体间1:1联系

对于两实体间1:1联系,只需在一个关系模型中增加另一个关系模型的主键,并可省略两实体间的联系模型。例如:书中所讲到的厂家与工厂的关系,可以省去“管理”这个模型,在“工厂”模型中加入属性“姓名”或在“厂长”模型中加入“工厂”的主键“厂号”,这样关系模型就形成了。

方法一:在查询分析器里执行以下代码

---创建数据库(假如库名为MyDatabase)

use master

create database MyDatabase;

go

use MyDatabase

---创建一张数据表(假设表名为Mytable,有两列:表序号,表名称)

create table Mytable

(

TableID int not null primary key,

TableName varchar(50)

)

方法二:假设有SqlServer2005来创建数据库(前提是要先安装Sqlserver2005)

打开数据库管理器->展开sqlserver组 ->展开实例 ->右键‘数据库’ ->新建数据库 然后按提示下一步

建好库之后,右键你刚刚建的库 -> 新建 -> 表 然后按提示下一步

怎么在excel中建立数据表

excel是一个表,一个EXCEL的工作薄一个数据库,它的每一张表就是数据库,你可象 *** 作表一样对其进行查询等 *** 作,它里面的列就是数据库的字段,行就是记录,因此你可以按数据库的架构来组建数据,只是你如果你组建的数据不符合数据库的规则,在查询时不能得到时相应的结果。因此在EXCEL中不存在创建数据库。但对存在的数据可以引用。当满足条件A、B、C、D……时引用是可以的,但如果是在EXCEL中直接引用是不行的,一种是用VBA利用ADO访问EXCEL,在查询时把A、B、C、D几个条件按SQL语法写进查询语句中,引用返回的记录集,一种是利用函数把满足A、B、C、D的记录筛选出来,然后再引用。

excel表格中数据怎么变成数据库

首先我们需要在mysql管理工具上面新建一个表,也可以用mysql创建,表建立完成之后,你需要将表中的字段名字告诉给填写excel表的人员

打开excel表,按照程序提供的字段填写相应的数据此时注意下面几点:名字(我用红色标示出来了)需要跟程序提供的一样,其他的描述,表头可以不写都行

我使用的mysql管理工具是Navicat for MySQL,打开工具,选择表所在的数据库,然后点击数据库名字,右键数据,出来下拉菜单选择import wizard ,有汉化版本的更明确d出一个选择界面,我们选择excel file文件

点击next(下一步),我们选择我们对应的excel文件就行,然后再下面选在我们的文件内容在哪一个sheet中,也就是你的内容写在excel什么地方,这点需要注意,也是关键的地方,我的内容在sheet3中,所以我选择sheet3 ,如图:

点击next (此步骤也是关键步骤),需要注意2点: 1:filed name row 就是你的字段所在excel中的位置,也就是第几行(简单办法,一般就是英文对应的那一列)2:first data row(从哪一行开始执行),数据从哪一行开始呢,我这里选择的是3,4

点击next 我们选择 target table 目标对应的数据库,选择你要导入到哪个数据库中表中

如果到上面一步没有问题的话,我们默认next到最后 就行了然后打开表就能看到数据跟excel表中的一样

首先你要理解SQL并写一个SQL的编译器。本来tokenizer和parser两部分就可以够程序员撕逼了,你还需要写一个你不知道文法(别看了,那书里绝对没有文法)的编译器。这块如果你没学过编译原理,我很好奇你需要怎么实现,甚至怎么寻找或设计文法到实现编译器的前端。

第二,你需要了解关系模型,并实现关系模型的存储。你需要对数据结构,其中最核心的是B+树索引和Hash索引,重点是实现他们在磁盘上的版本。由于磁盘的存储方式和内存不一样,你需要针对磁盘的存储进行特殊的处理。

第三,你需要实现查询引擎。查询引擎的原理是将SQL转换成一系列关系代数 *** 作符组成的 *** 作树。之前你已经实现了这个查询引擎,也就是SQL编译器的前端。现在你需要理解关系代数,并实现关系代数 *** 作符。并实现一个类似于解释器,或者叫调度器的工具,将关系 *** 作树给依次执行。其中关系代数 *** 作符里最麻烦的就是join *** 作,因为join *** 作有好几种join算法。如果需要的话,你还需要实现查询优化引擎。查询优化引擎姑且算是一个抽象的黑盒子,里面需要用到一些启发式的高级算法,需要你对动态规划和树遍历等等算法有了解。同时在cost estimation的部分需要从历史数据中估算cost,往大了说还是统计学和机器学习呢。

第四,你需要实现事务和恢复(回滚)机制,这是数据库最重要的功能之一。事务的话需要各种锁的机制实现,而回滚需要有完善的日志系统。这两部分需要大量的工作量和对 *** 作系统有深入的了解。

第五,你最好还要实现一个api。这就是把socket通信封个包的苦力了。

我很好奇150天中你要各分配给上面的东西多少天。举个例子,阿里一堆“大神”做oceanbase,当然transaction和存储复杂多了,用了四年。今年图灵奖得主michael stonebraker的学生做的voltdb的原型,接近十个人做一年。

我本科并没有实现一个数据库就毕业了。当时也是看着大神们说什么撸一个数据库感到各种膜拜。现在我回过头来反思,一个人撸一个数据库到底是不是一件很有意义的事情,而且也完不成。几个人一起分工各做一部分姑且能勉强完成任务。诚然,如上文所讲,还不完全(我没撸过数据库,所以上面讲的并不能如数家珍),数据库作为一个计算机软件是包含了计算机科学里许多模块的一个十分综合的软件系统。对数据库的学习可以延展到对算法与数据结构,编译器,计算理论, *** 作系统等等方方面面的学习,是非常好的一件事。同时做一个数据库一定需要对这些多方面的知识有着十分详细的了解才能做到游刃有余。这些绝对不是,也没必要是,一个大学低年级同学应该做到的。甚至不是大部分工程师应该做到的。因为工程师的业务绝大部分人涉及不到这么多方面,尤其是编译器部分。

1、首先点击打开主菜单栏中的“外接程序”选项。

2、然后在d出来的窗口中点击打开“可视化数据管理器”,出现下图中的界面。

3、然后单击文件中的新建,选择“microsot access”,“version 70”,d出保存界面,点击保存后出现如下界面。

4、然后右键单击properties,选择“新建表”,输入表名称,添加字段。

5、然后打开类型,选择字段类型的大小,回车确定。

6、然后点击“生成表”选项。

7、然后双击“1”或者右键单击选择打开。

8、然后输入值后工具栏会变化。

9、然后点击添加就完成了。

点击“外部数据”页,选择“EXCEL”

在d出的获取外部数据向导中点击”浏览“

在d出来的浏览窗口找到EXCEL表格所存放的位置选中后点击”打开“

如无特殊数据或要求保留标题直接在后边点击完成,否则点击“下一步”根据提示修改需要的数据类型、保存标题等 *** 作。完成后在左边可以看到数据表名,双击可以正常在ACCESS进行正常 *** 作。

什么是SQL呢

SQL就是专门用来做数据库的一门语言

和C语言差不多

(当然功能不紧紧是做数据了

编程啊

都可以

这里就不多说了)z这道题用ACCESS

就可以完成了

1

首先

用Access

2000(数据库

)做一个数据库

打开设计器创建表

在点菜单

另存为

名为班级名+自己名字英文简写

最后点保存啦

(每完成系统都是有提示的啦)

第一问

解决

2

打开设计器

上面做的表下面下

创建数据表

名字都是在最后完成时做的

先不用管

然后在输入sID,sName,sSex,sAge,sClass

注意根据后面的要求填写字段

及数据类型

以及

在做其他的问题了将T_Student表的sID字段设置为标识列,种子为1,增量为2。

为T_Student表的sSex(性别)字段设置其默认值为“男”。

为T_Student表的sAge(年龄)字段设置检查约束,规定年龄在0到30岁之间。

为T_KC表的cName(课程名称)字段设置唯一性约束。,规定课程名称不得重复。

生成一个规则t_rule,限制数据的取值范围在(0---100)之间,然后将这个规则绑定到T_CJ表的cj(成绩)字段。

为T_KC表的cName字段创建索引。

最后

当然主键当然是SID了

一定要标好哦~~·先不管作业其他要求

在依次做其他2个表;

T_KC(cID,cName,sBianhao,sXuefen)

T_CJ(sID,cID,cj)

注意主键是SID

3

做好了三个表后退出设计器

在打开以一个个表

在按要求输入(在每个表中添加3-5条记录。)

好了

基本就完成了

当然用SQL

也能完成

这些问题

并且要快

但涉及到TQL语言

编程问题

很难说清楚

就不一一解释了···

以上就是关于数据库设计怎么做全部的内容,包括:数据库设计怎么做、怎么样制作数据库、表格怎么做数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9456682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存