数据库设计实例哪个给个简单数据库建立的例子(论文形式)

数据库设计实例  时间:2021-08-27  阅读:()

谁能用最简单的一个例子给我讲一下 数据库的函数依赖 只讲最基本的就行

当t1[x]=t2[x]为假时,说明任意两个元组的x(x可能包含多个字段)都不相等,也就是说x是唯一的,即x能唯一地标识该模式中的元组,所以x就是r的主键。

故不管t1[y]=t2[y]为真或为假,都有x→y成立。

可以找一个实例来理解:比如r(编号,姓名,年龄,学院,班级),x(编号),y(年龄,班级),r是某一个班级的学生信息,t1(0001,小明,20,工学院,土木本一班),t2(0002,小马,19,工学院,土木本一班),若t1[x]=t2[x]为假,那说明在r中,任意两个学号都不相等,那x就可以作为r的主键,由主键可以确定该关系模式的所有字段,不管其他字段是否相等。

特别要注意函数依赖中“任意”两个字。

ps:好久没看过数据库理论的书了,如果答的不对,请多指教,函数依赖部分是让人比较头疼的地方......

数据库设计5步骤?

1.确定entities及relationships a)设计宏观行为。

你用此数据库来做什么?比如,希望管理雇员的信息。

b)确定entities。

对于一系列的行为,确定所管理信息所涉及到的主题范围。

这将变成table。

比如,雇用员工,指定具体部门,确定技能等级。

c)确定relationships。

看着行为,确定tables之间有何种关系。

比如,在部门与雇员之间存在一种关系。

给这种关系命名。

d)细化行为。

你从宏观行为开始,现在仔细检查这些行为,看有哪些行为能转为微观行为。

比如,管理雇员的信息可细化为: ● 增加新员工 ● 修改存在员工信息 ● 删除调走的员工 e)确定业务规则。

看着你的业务规则,确定你要采取哪种。

比如,可能有这样一种规则,一个部门有且只能有一个部门领导。

这些规则将被设计到数据库的结构中。

范例: ACME是一个小公司,在5个地方都设有办事处。

当前,有75名员工。

公司准备快速扩大规模,划分了9个部门,每个部门都有其领导。

为有助于寻求新的员工,人事部门规划了68种技能,为将来人事管理作好准备。

员工被招进时,每一种技能的专业等级都被确定。

定义宏观行为 一些ACME公司的宏观行为包括: ● 招聘员工 ● 解雇员工 ● 管理员工个人信息 ● 管理公司所需的技能信息 ● 管理哪位员工有哪些技能 ● 管理部门信息 ● 管理办事处信息 确定entities及relationships 我们可以确定要存放信息的主题领域(表)及其关系,并创建一个基于宏观行为及描述的图表。

我们用方框来代表table,用菱形代表relationship。

我们可以确定哪些relationship是一对多,一对一,及多对多。

这是一个E-R草图,以后会细化。

细化宏观行为 以下微观行为基于上面宏观行为而形成: ● 增加或删除一个员工 ● 增加或删除一个办事处 ● 列出一个部门中的所有员工 ● 增加一项技能 ● 增加一个员工的一项技能 ● 确定一个员工的技能 ● 确定一个员工每项技能的等级 ● 确定所有拥有相同等级的某项技能的员工 ● 修改员工的技能等级 这些微观行为可用来确定需要哪些table或relationship。

确定业务规则 业务规则常用于确定一对多,一对一,及多对多关系。

相关的业务规则可能有: ● 现在有5个办事处;最多允许扩展到10个。

● 员工可以改变部门或办事处 ● 每个部门有一个部门领导 ● 每个办事处至多有3个电话号码 ● 每个电话号码有一个或多个扩展 ● 员工被招进时,每一种技能的专业等级都被确定。

● 每位员工拥有3到20个技能 ● 某位员工可能被安排在一个办事处,也可能不安排办事处。

2.确定所需数据 要确定所需数据: 1. 确定支持数据 2. 列出所要跟踪的所有数据。

描述table(主题)的数据回答这些问题:谁,什么,哪里,何时,以及为什么 3. 为每个table建立数据 4. 列出每个table目前看起来合适的可用数据 5. 为每个relationship设置数据 6. 如果有,为每个relationship列出适用的数据 确定支持数据 你所确定的支持数据将会成为table中的字段名。

比如,下列数据将适用于表Employee,表Skill,表Expert In。

如果将这些数据画成图表,就像: 需要注意: ● 在确定支持数据时,请一定要参考你之前所确定的宏观行为,以清楚如何利用这些数据。

● 比如,如果你知道你需要所有员工的按姓氏排序的列表,确保你将支持数据分解为名字与姓氏,这比简单地提供一个名字会更好。

● 你所选择的名称最好保持一致性。

这将更易于维护数据库,也更易于阅读所输出的报表。

● 比如,如果你在某些地方用了一个缩写名称Emp_status,你就不应该在另外一个地方使用全名(Empolyee_ID)。

相反,这些名称应当是Emp_status及Emp_id。

● 数据是否与正确的table相对应无关紧要,你可以根据自己的喜好来定。

在下节中,你会通过测试对此作出判断。

3.标准化数据 标准化是你用以消除数据冗余及确保数据与正确的table或relationship相关联的一系列测试。

共有5个测试。

本节中,我们将讨论经常使用的3个。

关于标准化测试的更多信息,请参考有关数据库设计的书籍。

标准化格式 标准化格式是标准化数据的常用测试方式。

你的数据通过第一遍测试后,就被认为是达到第一标准化格式;通过第二遍测试,达到第二标准化格式;通过第三遍测试,达到第三标准化格式。

如何标准格式: 1. 列出数据 2. 为每个表确定至少一个键。

每个表必须有一个主键。

3. 确定relationships的键。

relationships的键是连接两个表的键。

4. 检查支持数据列表中的计算数据。

计算数据通常不保存在数据库中。

5. 将数据放在第一遍的标准化格式中: 6. 从tables及relationships除去重复的数据。

7. 以你所除去数据创建一个或更多的tables及relationships。

8. 将数据放在第二遍的标准化格式中: 9. 用多于一个以上的键确定tables及relationships。

10. 除去只依赖于键一部分的数据。

11. 以你所除去数据创建一个或更多的tables及relationships。

12. 将数据放在第三遍的标准化格式中: 13. 除去那些依赖于tables或relationships中其他数据,并且不是键的数据。

14. 以你所除去数据创建一个或更多的tables及relationships。

数据与键 在你开始标准化(测试数据)前,简单地列出数据,并为每张表确定一个唯一的主键。

这个键可以由一个字段或几个字段(连锁键)组成。

主键是一张表中唯一区分各行的一组字段。

Employee表的主键是Employee ID字段。

Works In relationship中的主键包括Office Code及Employee ID字段。

给数据库中每一relationship给出一个键,从其所连接的每一个table中抽取其键产生。

将数据放在第一遍的标准化格式中 ● 除去重复的组 ● 要测试第一遍标准化格式,除去重复的组,并将它们放进他们各自的一张表中。

● 在下面的例子中,Phone Number可以重复。

(一个工作人员可以有多于一个的电话号码。

)将重复的组除去,创建一个名为Telephone的新表。

在Telephone与Office创建一个名为Associated With的relationship。

将数据放在第二遍的标准化格式中 ● 除去那些不依赖于整个键的数据。

● 只看那些有一个以上键的tables及relationships。

要测试第二遍标准化格式,除去那些不依赖于整个键的任何数据(组成键的所有字段)。

● 在此例中,原Employee表有一个由两个字段组成的键。

一些数据不依赖于整个键;例如,department name只依赖于其中一个键(Department ID)。

因此,Department ID,其他Employee数据并不依赖于它,应移至一个名为Department的新表中,并为Employee及Department建立一个名为Assigned To的relationship。

将数据放在第三遍的标准化格式中 ● 除去那些不直接依赖于键的数据。

● 要测试第三遍标准化格式,除去那些不是直接依赖于键,而是依赖于其他数据的数据。

● 在此例中,原Employee表有依赖于其键(Employee ID)的数据。

然而,office location及office phone依赖于其他字段,即Office Code。

它们不直接依赖于Employee ID键。

将这组数据,包括Office Code,移至一个名为Office的新表中,并为Employee及Office建立一个名为Works In的relationship。

4.考量关系 当你完成标准化进程后,你的设计已经差不多完成了。

你所需要做的,就是考量关系。

考量带有数据的关系 你的一些relationship可能集含有数据。

这经常发生在多对多的关系中。

遇到这种情况,将relationship转化为一个table。

relationship的键依旧成为table中的键。

考量没有数据的关系 要实现没有数据的关系,你需要定义外部键。

外部键是含有另外一个表中主键的一个或多个字段。

外部键使你能同时连接多表数据。

有一些基本原则能帮助你决定将这些键放在哪里: 一对多 在一对多关系中,“一”中的主键放在“多”中。

此例中,外部键放在Employee表中。

一对一 在一对一关系中,外部键可以放进任一表中。

如果必须要放在某一边,而不能放在另一边,应该放在必须的一边。

此例中,外部键(Head ID)在Department表中,因为这是必需的。

多对多 在多对多关系中,用两个外部键来创建一个新表。

已存的旧表通过这个新表来发生联系。

5.检验设计 在你完成设计之前,你需要确保它满足你的需要。

检查你在一开始时所定义的行为,确认你可以获取行为所需要的所有数据: ● 你能找到一个路径来等到你所需要的所有信息吗? ● 设计是否满足了你的需要? ● 所有需要的数据都可用吗? 如果你对以上的问题都回答是,你已经差不多完成设计了。

最终设计 最终设计看起来就像这样: 设计数据库的表属性 数据库设计需要确定有什么表,每张表有什么字段。

此节讨论如何指定各字段的属性。

对于每一字段,你必须决定字段名,数据类型及大小,是否允许NULL值,以及你是否希望数据库限制字段中所允许的值。

选择字段名 字段名可以是字母、数字或符号的任意组合。

然而,如果字段名包括了字母、数字或下划线、或并不以字母打头,或者它是个关键字(详见关键字表),那么当使用字段名称时,必须用双引号括起来。

为字段选择数据类型 SQL Anywhere支持的数据类型包括: 整数(int, integer, smallint) 小数(decimal, numeric) 浮点数(float, double) 字符型(char, varchar, long varchar) 二进制数据类型(binary, long binary) 日期/时间类型(date, time, timestamp) 用户自定义类型 关于数据类型的内容,请参见“SQL Anywhere数据类型”一节。

字段的数据类型影响字段的最大尺寸。

例如,如果你指定SMALLINT,此字段可以容纳32,767的整数。

INTEGER可以容纳2,147,483,647的整数。

对CHAR来讲,字段的最大值必须指定。

长二进制的数据类型可用来在数据库中保存例如图像(如位图)或者文字编辑文档。

这些类型的信息通常被称为二进制大型对象,或者BLOBS。

关于每一数据类型的完整描述,见“SQL Anywhere数据类型”。

NULL与NOT NULL 如果一个字段值是必填的,你就将此字段定义为NOT NULL。

否则,字段值可以为NULL值,即可以有空值。

SQL中的默认值是允许空值;你应该显示地将字段定义为NOT NULL,除非你有好理由将其设为允许空值。

关于NULL值的完整描述,请见“NULL value”。

有关其对比用法,见“Search conditions”。

选择约束 尽管字段的数据类型限制了能存在字段中的数据(例如,只能存数字或日期),你或许希望更进一步来约束其允许值。

你可以通过指定一个“CHECK”约束来限制任意字段的值。

你可以使用能在WHERE子句中出现的任何有效条件来约束被允许的值,尽管大多数CHECK约束使用BETWEEN或IN条件。

更多信息 有关有效条件的更多信息,见“Search conditions”。

有关如何为表及字段指定约束,见“Ensuring Data Integrity”。

例子 例子数据库中有一个名为department的表,字段是dept_id, dept_name, dept_head_id。

其定义如下: 注意每一字段都被指定为“not null”。

这种情况下,表中每一记录的所有字段的数据都必填。

选择主键及外部键 主键是唯一识别表中每一项记录的字段。

如何你的表已经正确标准化,主键应当成为数据库设计的一部分。

外部键是包含另一表中主键值的一个或一组字段。

外部键关系在数据库中建立了一对一及一对多关系。

如果你的设计已经正确标准化,外部键应当成为数据库设计的一部分。

哪个给个简单数据库建立的例子(论文形式)

给你这个网址,去看看/ 环境: w2kp sp4, jsdk1.4.2_8; tomcat5.0.2.8; oracle817, sqlserver2000 sp3 , mysql5 beta 总的来说在tomcat配置一个数据源有4项工作要做. 1. 在server.xml 里配置数据源连接池参数。

可以手动,也可以通过tomcat admin工具。

2. 在 %CATALINA_HOME%confCatalinalocalhost 下 , 对用你自己的webapp用户 yourapp.xml 配置 对数据源的声明. 3. 在自定义的webapp 下WEB-INFOweb.xml 下配置对数据源的引用。

4. 在特定数据库的jdbc 驱动copy 到%CATALINA_HOME%monlib 下 其他应用服务器可能要配置classpath 等. oracle 数据源配置. 1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下: JNDI Name: jdbc/oracle Data Source URL: jdbc:oracle:thin:@192.168.0.18:1521:oradb JDBC Driver Class: oracle.jdbc.driver.OracleDriver User Name: oraconn Password: oraconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query: 其中oradb 是oracle数据库的SID. oraconn 为oracle可用的用户名密码. 2.进入%TOMCAT_HOME%confCatalinalocalhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码: 3、 修改web.xml和%TOMCAT_HOME%confCatalinalocalhost下对应你的引用的配置文件 打开%TOMCAT_HOME%confweb.xml,在的前面添加以下内容: oraDB Connection jdbc/ora javax.sql.DataSource Container 注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

4. 在%oracle_home%ora81jdbclib 下有一个classes12.zip, 和nls_charset12.zip 把这两个文件解压的一个临时目录下例如d:work empclasses12 和 d:work emp ls_charset12 进入这两个目录 d:> cd work empclasses12 用 jar -cvf classes12.jar * 创建classes12.jar 同样创建 nls_cahrset12.jar 把这两个jar文件copy 到 %tomcat_home% monlib 下。

oracle 数据库配置完毕。

sqlserver2000 1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下: JNDI Name: jdbc/sqlserver Data Source URL: jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb JDBC Driver Class: .microsoft.jdbc.sqlserver.SQLServerDriver User Name: sqlconn Password: sqlconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query: 其中sqldb 是sqldb数据库名称. sqlconn 为sqlserver可用的用户名密码. 2.进入%TOMCAT_HOME%confCatalinalocalhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码: 3、 修改web.xml和%TOMCAT_HOME%confCatalinalocalhost下对应你的引用的配置文件 打开%TOMCAT_HOME%confweb.xml,在的前面添加以下内容: sqlserverDB Connection jdbc/sqlserver javax.sql.DataSource Container 注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

4. 下载sqlserver2000 jdbc 驱动 /download/SQLSVR2000/Install/2.2.0022/UNIX/EN-US/mssqlserver.tar 解压后找到如下jar包 msbase.jar , mssqlserver.jar, msutil.jar 把这3个jar包copy 到 %tomcat_home% monlib 下。

sqlserver 配置完毕 mysql5 beta 数据源配置 1.进入 http://localhost:8080/admin/ conf文件夹下的tomcat-users.xml有管理员的用户名密码等信息。

选择Resources-Data sources进入配置数据源界面,选择Data Source Actions ->选择Create New Data Source,进入配置详细信息界面,内容如下: JNDI Name: jdbc/mysql Data Source URL: jdbc:mysql://192.168.0.18/mysqldb JDBC Driver Class: .mysql.jdbc.Driver User Name: mysqlconn Password: mysqlconn Max. Active Connections: 20 Max. Idle Connections: 10 Max. Wait for Connection: 5000 Validation Query: 其中sqldb 是sqldb数据库名称. mysqlconn 为sqlserver可用的用户名密码. 2.进入%TOMCAT_HOME%confCatalinalocalhost下,找到你的web应用对应的.xml文件(下面有我的web的目录结构),如 test.xml,并在此文件的下添入代码: 3、 修改web.xml和%TOMCAT_HOME%confCatalinalocalhost下对应你的引用的配置文件 打开%TOMCAT_HOME%confweb.xml,在的前面添加以下内容: mysqlDB Connection jdbc/sqlmysql javax.sql.DataSource Container 注意res-ref-name填写的内容要与在上文提到的JNDI Name名称一致。

4. 下载mysql jdbc 驱动 mysql-connector-java-3.1.9.zip 解压后找到如下jar包 mysql-connector-java-3.1.9-bin.jar 这个jar包copy 到 %tomcat_home% monlib 下。

mysql 配置完毕 这是conf 下 server.xml 文件 的配置部分 factory .apache.catalina.users.MemoryUserDatabaseFactory pathname conf/tomcat-users.xml maxWait 5000 maxActive 20 password mysqlconn url jdbc:mysql://192.168.0.18/mysqldb driverClassName .mysql.jdbc.Driver maxIdle 10 username mysqlconn maxWait 5000 maxActive 20 password oraconn url jdbc:oracle:thin:@192.168.0.18:1521:oradb driverClassName oracle.jdbc.driver.OracleDriver maxIdle 10 username oraconn maxWait 5000 maxActive 20 password sqlconn url jdbc:microsoft:sqlserver://192.168.0.18:1433;DatabaseName=sqldb driverClassName .microsoft.jdbc.sqlserver.SQLServerDriver maxIdle 10 username sqlconn 其中192.168.0.18为数据库服务器IP . 下面是 %CATALINA_HOME%confCatalinalocalhost 对应的 xml 文件。

我的应用是test.xml 以下是test webapp 下的WEB-INFO web.xml文件 PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "/dtd/web-app_2_3.dtd"> My Web Application A application for test. mysqlDB Connection jdbc/mysql javax.sql.DataSource Container sqlserverDB Connection jdbc/sqlserver javax.sql.DataSource Container oracleDB Connection jdbc/oracle javax.sql.DataSource Container Set Character Encoding filters.SetCharacterEncodingFilter encoding GB2312 Set Character Encoding /* 在oracle , sqlserver , mysql 建立3个类似的简单表来测试 mysql create table test_user ( NAME VARCHAR(50) ) oracle create table test_user ( NAME VARCHAR2(50) ) sqlserver create table test_user ( NAME VARCHAR(50) ) ok 配置工作已经完成。

让我们写3个JSP来测试。

testDSoracle.jsp文件

Spinservers美国圣何塞服务器$111/月流量10TB

Spinservers是Majestic Hosting Solutions,LLC旗下站点,主营美国独立服务器租用和Hybrid Dedicated等,数据中心位于美国德克萨斯州达拉斯和加利福尼亚圣何塞机房。TheServerStore.com,自 1994 年以来,它是一家成熟的企业 IT 设备供应商,专门从事二手服务器和工作站业务,在德克萨斯州拥有 40,000 平方英尺的仓库,库存中始终有...

数脉科技:六月优惠促销,免备案香港物理服务器,E3-1230v2处理器16G内存,350元/月

数脉科技六月优惠促销发布了!数脉科技对香港自营机房的香港服务器进行超低价促销,可选择30M、50M、100Mbps的优质bgp网络。更大带宽可在选购时选择同样享受优惠,目前仅提供HKBGP、阿里云产品,香港CN2、产品优惠码续费有效,仅限新购,每个客户可使用于一个订单。新客户可以立减400元,或者选择对应的机器用相应的优惠码,有需要的朋友可以尝试一下。点击进入:数脉科技官方网站地址数脉科技是一家成...

打开海外主机域名商出现"Attention Required"原因和解决

最近发现一个比较怪异的事情,在访问和登录大部分国外主机商和域名商的时候都需要二次验证。常见的就是需要我们勾选判断是不是真人。以及比如在刚才要访问Namecheap检查前几天送给网友域名的账户域名是否转出的,再次登录网站的时候又需要人机验证。这里有看到"Attention Required"的提示。我们只能手工选择按钮,然后根据验证码进行选择合适的标记。这次我要选择的是船的标识,每次需要选择三个,一...

数据库设计实例为你推荐
云和数据达内和云和数据这两家培训那家比较好,刚毕业想学点东西,不是很清楚?方便快捷方便快捷的食物做法宵云九宵云外.是什么意思快速网怎样能让女人迅速达到性高潮?u盾证书U盾证书在哪里?说明书之家网站索尼A200说明书哪里有信息发布管理系统信息发布系统的构架区别本地连接断开本地连接老是断开怎么解决手机证书申请手机证书怎么申请啊etletl是什么
东莞电信局 linode代购 ixwebhosting 美国php主机 linux空间 大容量存储器 韩国名字大全 河南m值兑换 idc是什么 免费申请网站 drupal安装 网购分享 789 论坛主机 德讯 免费php空间 免费稳定空间 阿里云邮箱申请 广州服务器托管 rewritecond 更多