搜档网
当前位置:搜档网 › 图片存入mySql数据库

图片存入mySql数据库

图片存入mySql数据库
图片存入mySql数据库

我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的

只要大家将连接数据库的参数改一下就可以了。

SQL>create table image(id int,content varchar(200),image blob);

如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。

testimage.html文件内容如下:

Image File



我们在Form的action里定义了一个动作testimage.jsp,它的内容如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String

url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";

//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改

Connection conn= DriverManager.getConnection(url);

String content=request.getParameter("content");

String filename=request.getParameter("image");

FileInputStream str=new FileInputStream(filename);

String sql="insert into test(id,content,image) values(1,?,?)"; PreparedStatement pstmt=dbconn.conn.prepareStatement(sql);

pstmt.setString(1,content);

pstmt.setBinaryStream(2,str,str.available());

pstmt.execute();

out.println("Success,You Have Insert an Image Successfully");

%>

下面我写一个测试image输出的例子看我们上面程序写的对不对,testimageout.jsp的内容如下:

<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();

String

url="jdbc:mysql://localhost/mysql?user=root&password=&useUnicode=true&characterEncoding= 8859_1";

//其中mysql为你数据库的名字,user为你连接数据库的用户,password为你连接数据库用户的密码,可自己改

Connection conn= DriverManager.getConnection(url);

String sql = "select image from test where id=1";

Statement stmt=null;

ResultSet rs=null;

try{

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

}catch(SQLException e){}

try {

while(rs.next()) {

res.setContentType("image/jpeg");

ServletOutputStream sout = response.getOutputStream();

InputStream in = rs.getBinaryStream(1);

byte b[] = new byte[0x7a120];

for(int i = in.read(b); i != -1;)

{

sout.write(b);

in.read(b);

}

sout.flush();

sout.close();

}

}

catch(Exception e){System.out.println(e);}

%>

你运行这个程序,你就会看到刚才你写入美丽的图片就会显示在你面前。怎么样,用jsp 来试试。

这种方法把图片写到数据库中会使数据库在短时间内容量飞涨,会影响性能的,另外一种做法将图片存上传到服务器上,

在数据库里只存放图片的路径,这是一个很好的方法。我建议大家采取后面一种方法。

jsp上传图片到Oracle数据库

第一步:建立数据库

create table test_img(id number(4),name varchar(20),pic long raw);

第二步:(NewImg.html)

添加图片

添加图片

图像ID:


选择图像:



第三步:插入数据库(InsertImg.jsp)

<%@ page language="java"%>

<%@ page contentType="text/html;charset=gb2312" %>

<%@ page import="java.util.*" %>

<%@ page import="java.sql.*"%>

<%@ page import="java.text.*"%>

<%@ page import="java.io.*"%>

<%

Class.forName("oracle.jdbc.driver.OracleDriver");

String url="jdbc:oracle:thin:@lubin:1521:b2bdb";

Connection con=DriverManager.getConnection(url,"demo","demo");

//插入数据库

String sql="insert into test_img values (?,?,?)";

//获取传值ID

String id=request.getParameter("id");

//获取image的路径

String kk=request.getParameter("image");

//转换成file格式

File filename=new File(kk);

//将文件的长度读出,并转换成Long型

long l1=filename.length();

int l2=(int)l1;

//以流的格式赋值

FileInputStream fis=new FileInputStream(filename);

PreparedStatement ps =con.prepareStatement(sql);

ps.setString(1,id);

ps.setString(2,filename.getName());

ps.setBinaryStream(3,fis,l2);

//ps.setBinaryStream(3,fis,fis.available());

ps.executeUpdate();

//ps.execute();

ps.close();

fis.close();

out.println("ok!!!");

%>

第四步:显示图片(ShowImg.jsp)

<%@ page language="java" import="java.sql.*"%>

<%@ page import="java.io.*"%>

<%@ page contentType="text/html;charset=gb2312"%>

<%

Class.forName("oracle.jdbc.driver.OracleDriver");

String url="jdbc:oracle:thin:@lubin:1521:b2bdb";

String image_id = (String) request.getParameter("ID");

Connection con=DriverManager.getConnection(url,"demo","demo"); PreparedStatement sql=con.prepareStatement("select * from test_img WHERE

id = " + image_id);

ResultSet rs = sql.executeQuery();

rs.next();

//输入img字段内容到in

InputStream in = rs.getBinaryStream("img");

//以下可是任何处理,比如向页面输出:

response.reset();

//此处的image/jpeg似乎与显示的图片格式无关

//因为我显示jsp和gif都没有错误

response.setContentType("image/jpeg");

byte[] b = new byte[1024];

int len;

while((len=in.read(b)) >0)

response.getOutputStream().write(b,0,len);

in.close();

rs.close();

%>

saveImage.java源代码

/////////////

package imagefile;

import java.sql.*;

import java.util.*;

import java.io.*;

public class SaveImage {

public static void main(String[] args) {

String filename="c:\test.bmp";

Properties props = new Properties();

props.put("user", "scott");

props.put("password", "tiger");

props.put("server", "SDDS");

try{

Driver myDriver = (Driver)

Class.forName("weblogic.jdbc.oci.Driver").newInstance();

Connection con = myDriver.connect("jdbc:weblogic:oracle" , props);

con.setAutoCommit(false);

File files = new File(filename);

FileInputStream fis=new FileInputStream(files);

PreparedStatement ps = con.prepareStatement(

"INSERT INTO filetable (filename,filedata)" +

"V ALUES (?, ?)");

ps.setString(1, files.getName());

ps.setBinaryStream(2, fis,(int)files.length());

ps.executeUpdate();

fis.close();

ps.close();

con.close();

System.out.println("file is saved into filetable");

}catch(Exception e){e.printStackTrace();}

}

}

Mysql支持的数据类型(总结)

一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型 (INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增加了TINYINT,MEDIUMINT,BIGINT这3种长度不同的整形,并增加了BIT类型,用来存放位数据。 整数类型字节范围(有符号)范围(无符 号)用途 TINYINT 1字节(-128,127) (0, 255) 小整数值 SMALLINT 2字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3字节(-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度浮点数值 DOUBLE 8字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值依赖于M和D的值小数值 INT 类型: 在 MySQL 中支持的 5 个主要整数类型是 TINYINT,SMALLINT,MEDIUMINT,INT 和BIGINT。这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。MySQL 以一个可选的显示宽度指示器的形式对 SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。例如,指定一个字段的类型为 INT(6),

(最新整理)分布式数据库研究现状及发展趋势

(完整)分布式数据库研究现状及发展趋势 编辑整理: 尊敬的读者朋友们: 这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整)分布式数据库研究现状及发展趋势)的内容能够给您的工作和学习带来便利。同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。 本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整)分布式数据库研究现状及发展趋势的全部内容。

山西大学研究生学位课程论文(2014 —--— 2015 学年第 2 学期) 学院(中心、所):计算机与信息技术学院 专业名称:计算机应用技术 课程名称:分布式数据库技术 论文题目:分布式数据库研究现状及发展趋势授课教师(职称): 曹峰() 研究生姓名: 刘杰飞 年级: 2014级 学号: 201422403003 成绩: 评阅日期: 山西大学研究生学院 2015年 6 月 17日

分布式数据库研究现状及发展趋势 摘要随着大数据、云时代的到来,数据库应用需求的拓展和计算机硬件环境的变化,特别是计算机网络与数字通信技术的飞速发展,卫星通信、蜂窝通信、计算机局域网、广域网和激增的Intranet及Internet得到了广泛应用,使分布式数据库系统应运而生。为了符合当今信息系统的应用需求和企业组织的管理思想和管理模式。分布式数据库提供了解决整个信息资产被分裂所成的信息孤岛,为孤岛联系在一起提供桥梁.本文主要介绍分布式数据库的研究现状,存在的一些问题以及未来的发展趋势。 关键词分布式数据库;发展趋势;现状及问题 1.引言 随着信息技术的飞速发展,社会经济结构、生产方式和消费结构已经发生了重大变化,这些变化深刻地影响着人民生活的方方面面。尤其是近十年来人们对计算机的依赖性越来越强,同时也对计算机提出了更高的要求。随着数据库在各个行业中的不断发展,各行业也对数据库提出了更高的要求,数据量也急剧增加,同时有关大数据分析的讨论正在愈演愈烈.甚至出现了爆炸性增长的趋势,一方面是由于移动互联网和移动智能终端的普及发展,数据信息正以每年40%的速度增长,造成数据量庞大;同时,数据种类呈多样性,文本、图片、视频等结构化和非结构化数据共存;另一方面也要求实时交互性强;最重要的是大数据蕴含了巨大的商业价值。相应的对于管理这些数据的复杂度也随之增加。同时各行业部门或企业所使用的软硬件之间的差异,这给开发企业管理数据库管理软件带来了巨大的工作量,如果能够有效解决这个问题,即使用同一模块管理操作不同的数据表格,对不同的数据表格进行查询、插入、删除、修改等操作,也即对企业简单的应用实现即插即用的功能,那么就能大大地减少软件开发的维护和更新费用,缩短软件的开发周期。分布式数据库系统的开发,降低了企业开发的成本,提高了软件使用的回报率。当今社会已进入了信息时代,人们将越来越多的信息存储在网络中的计算机上。如何更有

数据库课后题答案 第7章 数据库设计

第7章数据库设计 1.试述数据库设计过程。 答:这里只概要列出数据库设计过程的六个阶段:( l )需求分析;( 2 )概念结构设计;( 3 )逻辑结构设计;( 4 )数据库物理设计;( 5 )数据库实施;( 6 )数据库运行和维护。这是一个完整的实际数据库及其应用系统的设计过程。不仅包括设计数据库本身,还包括数据库的实施、运行和维护。设计一个完善的数据库应用系统往往是上述六个阶段的不断反复。 2 .试述数据库设计过程各个阶段上的设计描述。 答:各阶段的设计要点如下:( l )需求分析:准确了解与分析用户需求(包括数据与处理)。( 2 )概念结构设计:通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS 的概念模型。( 3 )逻辑结构设计:将概念结构转换为某个DBMS 所支持的数据模型,并对其进行优化。( 4 )数据库物理设计:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。( 5 )数据库实施:设计人员运用DBMS 提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。( 6 )数据库运行和维护:在数据库系统运行过程中对其进行评价、调整与修改。 3 .试述数据库设计过程中结构设计部分形成的数据库模式。 答:数据库结构设计的不同阶段形成数据库的各级模式,即:( l )在概念设计阶段形成独立于机器特点,独立于各个DBMS 产品的概念模式,在本篇中就是E 一R 图;( 2 )在逻辑设计阶段将 E 一R 图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式,然后在基本表的基础上再建立必要的视图( Vi 娜),形成数据的外模式;( 3 )在物理设计阶段,根据DBMS 特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。 4 .试述数据库设计的特点。 答:数据库设计既是一项涉及多学科的综合性技术又是一项庞大的工程项目。其主要特点有:( l )数据库建设是硬件、软件和干件(技术与管理的界面)的结合。( 2 )从软件设计的技术角度看,数据库设计应该和应用系统设计相结合,也就是说,整个设计过程中要把结构(数据)设计和行为(处理)设计密切结合起来。 5 .需求分析阶段的设计目标是什么?调查的内容是什么? 答:需求分析阶段的设计目标是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的内容是“数据’夕和“处理”,即获得用户对数据库的如下要求:( l )信息要求,指用户需要从数据库中获得信息的内容与性质,由信息要求可以导出数据要求,即在数据库中需要存储哪些数据;( 2 )处理要求,指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理;( 3 )安全性与完整性要求。 6 .数据字典的内容和作用是什么? 答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:( l )数据项;( 2 )数据结构;( 3 )数据流;( 4 )数据存储;( 5 )处理过程五个部分。其中数据项是数

分布式数据库总结(申德荣)

第一章分布式数据库系统概述 一、分布式数据库的发展 1、分布式数据库的发展: ①集中式数据库管理系统的局限性:a.通讯瓶颈;b.响应速度。 ②推动分布式数据库发展的动力:a.应用需求;b.硬件环境的发展。 二、分布式数据库系统的定义: 分布式数据库系统,通俗地说,是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用计算机网络将地理位置分散而管理和控制又需要不同程度集中的多个逻辑单位(通常是集中是数据库系统)连接起来,共同组成一个统一的数据库系统。 三、分布式数据库系统的特点: a.物理分布性:数据不是存放在一个站点上 b.逻辑整体性:是与分散式数据库系统的区别 c.站点自治性:是与多处理机系统的区别 d.数据分布透明性 e.集中与自治相结合的控制机制 f.存在适当的数据冗余度 g.事务管理的分布性 四、分布式数据库系统的分类 按局部数据库管理系统的数据模型分类:同构性(homogeneous)(分为同构同质型和同构异质型)DDBS和异构性(heterogeneous)DDBS 按分布式数据库系统的全局控制系统类型分类:全局控制集中型DDBS,全局控制分散型DDBS,全局控制可变型DDBS。

五、分布式数据库中数据的独立性和分布透明性 所谓数据独立性是指用户或用户程序使用分布式数据库如同使用集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况、逻辑片段站点位置的分配情况,以及各站点上数据库的数据模型等。也就是说,全局数据的逻辑分片、片段的物理位置分配,各站点数据库的数据模型等情况对用户和用户程序透明。所以,在分布式数据库中分布独立性也称为分布透明性。 六、分布式数据库系统的体系结构、组成成分 集中式数据库管理系统结构: a. DB(数据库) b. DBMS(集中式数据库管理系统) c. DBA(数据库管理员) 分布式数据库管理系统(DDBMS)结构: a. LDB(局部数据库) b. GDB(全局数据库) c. LDBMS (局部数据库管理系统) d. GDBMS (全局数据库管理系统) e. LDBA(局部数据库管理员) f. GDBA (全局数据库管理员) 七、分布式数据库系统的特性: 1. 数据透明性:a.分布透明性b. 分片透明性c. 复制透明性 2. 场地自治性:a. 设计自治性b. 通信自治性c. 执行自治性 八、分布式数据库系统的优点: 分布式数据库系统是在集中式数据库系统的基础上发展来的,比较分布式数据库系统与集中式数据库系统,可以发现分布是数据库系统具有下列优点: 1.更适合分布式的管理与控制。分布式数据库系统的结构更适合具有地理分布特性的组织或机构使用,允许分布在不同区域、不同级别的各个部门对其自身的数据实行局部控制。例如:实现全局数据在本地录入、查询、维护,这时由于计算机资源靠近用户,可以降低通信代价,提高响应速度,而涉及其他场地数据库中的数据只是少量的,从而可以大大减少网络上的信息传输量;同时,局部数据的安全性也可以做得更好。

mysql数据类型属性总结(方便大家建数据库设定类型参考)

MySQL数据类型和常用字段属性总结●日期和时间数据类型 ●数值数据类型 整型

上面定义的都是有符号的,当然了,也可以加上unsigned关键字,定义成无符号的类型,那么对应的取值范围就要翻翻了,比如: tinyint unsigned的取值范围为0~255。 ●浮点型 我在MySQL中建立了一个表,有一列为float(5, 3);做了以下试验: 1.插入123.45678,最后查询得到的结果为99.999; 2.插入12 3.456,最后查询结果为99.999; 3.插入12.34567,最后查询结果为12.346; 所以,在使用浮点型的时候,还是要注意陷阱的,要以插入数据库中的实际结果为准。 ●字符串数据类型

1.char(n)和varchar(n)中括号中n代表字符的个数,并不代表字节个数,所以当使用了中文的时候(UTF8)意味着可以插入m个中文,但是实际会占用m*3个字节。 2.同时char和varchar最大的区别就在于char不管实际value都会占用n个字符的空间,而varchar只会占用实际字符应该占用的空间+1,并且实际空间+1<=n。 3.超过char和varchar的n设置后,字符串会被截断。 4.char的上限为255字节,varchar的上限65535字节,text的上限为65535。 5.char在存储的时候会截断尾部的空格,varchar和text不会。 6.varchar会使用1-3个字节来存储长度,text不会。 1.enum(“member1″, “member2″, … “member65535″) enum数据类型就是定义了一种枚举,最多包含65535个不同的成员。当定义了一个enum的列时,该列的值限制为列定义中声明的值。如果列声明包含NULL属性,则NULL将被认为是一个有效值,并且是默认值。如果声明了NOT NULL,则列表的第一个成员是默认值。

数据库设计练习题

1、为某百货公司设计一个E-R模型。 百货公司管辖若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。 实体类型“商店”的属性有:店号、店名、店址、店经理。 实体类型“商品”的属性有:商品号、品名、单价、产地。 实体类型“职工”的属性有:工号、姓名、性别、工资。 在联系中应反映出职工参加某商店工作的开始时间、商店销售商品的月销售量。 (1)试画出反映商店、商品、职工实体类型及其联系类型的E-R图。 (2)根据画出的E-R图,设计数据库系统的关系模型。 2.设某商业集团数据库中有三个实体集。一就是“商店”实体集,属性有商店编号、商店名、地址等;二就是“商品”实体集,属性有商品号、商品名、规格、单价等;三就是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期与月薪。 (1)试画出E-R图,并在图上注明属性、联系的类型。 (2)将E-R图转换成关系模型,并注明主键与外键。 3.假设某公司的业务规则如下: ( 1 )公司下设几个部门,如技术部、财务部、市场部等。 ( 2 )每个部门承担多个工程项目,每个工程项目属于一个部门。 ( 3 )每个部门有多名职工,每一名职工只能属于一个部门。 ( 4 )一个部门可能参与多个工程项目,且每个工程项目有多名职工参与施工。每名职工可以参与该部门的多个工程项目,根据职工在工程项目中完成的情况发放酬金。 ( 5 )工程项目有工程号、工程名两个属性;部门有部门号、部门名称两个属性;职工有职工号、姓名、性别属性。 4、一个图书借阅管理数据库要求提供下述服务: 可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。 可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期与还书日期。且任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。 当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。且一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。 5、某医院病房计算机管理中需要如下信息: 科室:科名,科地址,科电话,医生姓名 病房:病房号,床位数,所属科室名 医生:姓名,职称,所属科室名,年龄,工作证号 病人:病历号,姓名,性别,诊断,主官医生,病房号,床位号 其中,一个科室可有多个病房、多个医生,一个病房只能属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个,一个病房可以住多位病人,每位病人对 应一个床位。 6、某酒店管理信息系统具有以下实体、属性及语义描述: 房间:房间号,床位数量。 客户:顾客编号,姓名,年龄,性别。

MySQL常用数据类型和建库策略

1. MYSQL 5数据类型,长度范围 1.1数值类型 MySQL支持所有标准SQL数值数据类型.这些类型包括严格数值数据类型(INTEGER,SMALLINT,DECIMAL和NUMERIC),以及近似数值数据类型 (FLOAT,REAL 和DOUBLE PRECISION).关键字INT是INTEGER的同义词,关键字DEC是DECIMAL 的同义词. BIT 数据类型保存位字段值,并且支持MyISAM,MEMORY,InnoDB和BDB表.作为SQL标准的扩展,MySQL也支持整数类型 TINYINT,MEDIUMINT和BIGINT.下面的表显示了需要的每个整数类型的存储和范围. MySQL还支持选择在该类型关键字后面的括号内指定整数值的显示宽度(例 如,INT(4)).该可选显示宽度规定用于显示宽度小于指定的列宽度的值时从左侧填满宽度. 显示宽度并不限制可以在列内保存的值的范围,也不限制超过列的指定宽度的值的显示. 当结合可选扩展属性ZEROFILL使用时, 默认补充的空格用零代替.例如,对于声明为INT(5) ZEROFILL的列,值4检索为00004.请注意如果在整数列保存超过显示宽度的一个值,当MySQL为复杂联接生成临时表时会遇到问题,因为在这些情况下MySQL相信数据适合原列宽度. 所有整数类型可以有一个可选(非标准)属性UNSIGNED.当你想要在列内只允许 非负数和该列需要较大的上限数值范围时可以使用无符号值. 浮点和定点类型也可以为UNSIGNED.同数类型,该属性防止负值保存到列中.然而,与整数类型不同的是,列值的上范围保持不变. 如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性. 对于浮点列类型,在MySQL中单精度值使用4个字节,双精度值使用8个字节. FLOAT类型用于表示近似数值数据类型.SQL标准允许在关键字FLOAT后面的括号内选择用位指定精度(但不能为指数范围).MySQL还支持可选的只用于确定存储大小的精度规定.0到23的精度对应FLOAT 列的4字节单精度.24到53的精度对应DOUBLE列的8字节双精度. MySQL允许使用非标准语法:FLOAT(M,D)或 REAL(M,D)或DOUBLE PRECISION(M,D).这里,"(M,D)"表示该值一共显示M位整数,其中D位位于小数点后面.例如,定义为FLOAT(7,4)的一个列可以显示为-999.9999.MySQL保存值时进行四舍五入,因此如果在FLOAT(7,4)列内插入999.00009,近似结果是999.0001.

数据库课程设计-试题库管理系统

《数据库系统概论》课程设计 实验报告 题目试题库管理系统 学院商学院 专业信息管理与信息系 班级信息101 学号 2 学生姓名杨贵文 同组成员周杭施建炉王于宾 指导教师宣军英 编写日期2012-06-19——2012-06-29

一、课题名称:试题库管理系统 二、课题要求:结合所学知识,开发一个简易的试题库管理系统。 三、实验目的:结合本学期所学知识,使学生温故而知新,并在实践操作上增加对数据库系统设计的认识和理解。 四、实验步骤: 五、1、需求分析 2、概念结构设计 3、逻辑结构设计 4、物理结构设计 5、数据库实施 6、数据库运行和维护 六、课程开发内容: 5.1 需求分析 5.1.1 系统调查 对现行的试题库管理业务进行了详细的调查和研究是了解系统需求和进行系统分析和设计的重要基础工作,因此要对我们的试题库管理工作进行全面的细致的调查研究。首先与相关的老师进行了交流和沟通,了解他们对试题库管理的看法,看看有没有什么新的要求,在这个基础上,结合自身所掌握的知识水平,量力而行开发相应的试题库管理系统。

在调查中我们可以发现,高校的试题库是极其庞大的,如果没有一个智能的系统将人们从手工阶段解放出来,那么一个庞大的、完整的试题库是无法有效运行的,甚至出题的老师也无法有效、准确地在试题库中抽取自己所需要的试题,这等于说是一个没有实际运用价值的试题库。所以说,他们对希望有这样的一个可以详细地表示试题属性的这样的一个试题库。那么今天我们就围绕着这样的一个目标展开我们的工作。 5.1.2 用户需求 要设计一个性能良好的管理系统,明确用户的应用环境对 系统的要求是首要的和基本的。本系统从以下四个方面对用户需求进行了分析: 1)用户的需求信息:出题老师可以看到题目所属的类型和题目所考察的内容以及试题的分值和 难度等级。当然这个权限也给管理员和系主任。 2)用户的处理要求:管理员可以对试题库进行插入和删除操作,出题老师可以凭借自己自定义的 选题要求在试题库中选择自己需求的试题,这个权限 也对系主任开放。 3)对系统的适应性、通用性要求:要求系统不仅能提供一门课程的试题库管理,还要综合多么学 科进行管理,建立一个高效的试题库管理系统。

Mysql数据库学习总结

Mysql数据库学习总结 数据库的基本操作:创建删除查瞧 Create database school; 用于创建数据库,并且数据库的名字不可以更改 Show create database; show databases; 用来查瞧创建数据库的语句 Drop database; 用于删除数据库 表的基本操作: Create table; 用于创建表,table后面加表名称 Create table student{ Id int; Name varchar(10); Sex Boolean; } Show tables; 用于显示数据库中的所有表 Describe student; 这里显示了字段、数据类型、就是否为空、主外键、默认值与额外信息Show create table; 显示创建表时的详细信息 Drop table student; 删除表的操作 完整性约束

就是对字段进行限制,从而该字段达到我们期望的效果 设置表的主键:主键能够标识表中的每条信息的唯一性。(primary key) 创建主键的目的在于快速查找到表中的某一条信息 多字段主键:由多个属性组合而成 例如:primary key(id,course_id); 设置表的外键; 设置表的外键的作用在于建立与父表的联系 比如表A中的id就是外键,表B中的id就是主键 那么就可以称表B为父表,表A为子表 比如表B中id为123的学生删除后,表A中id为123的记录也随着消失这样做的目的在于保证表的完整性。 设置表的非空约束: 设置表中的字段不为空 设置表的唯一性约束 唯一性约束指表中该字段的值不能重复出现,也就就是给表中某个字段加上unique 设置表的属性值自动增加: auto_increment 主要用于为表中插入的新纪录自动生成唯一ID 一个表中只能由一个字段使用此约束,并且该字段必须为主键的一部分,约束的值ibixu 就是整型值。 设置表中属性的默认值 在表中插入一体哦新的记录时,如果没有为该字段赋值,那么数据库系统就会为该字段附上一条默认值。 修改表 修改表需要用到alter table 修改表名:

最新数据库设计综合练习题及答案

1、有一课程管理系统,有如下特点:一个系可开设多门课程,但一门课只在一个系部开设,一个学生可选修多门课程,每门课可供若干学生选修,一名教师只教一门课程,但一门课程可有几名教师讲授,每个系聘用多名教师,但一个教师只能被一个系所聘用,要求这个课程管理系统能查到任何一个学生某门课程的成绩,以及这个学生的这门课是哪个老师所教的。(1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。 1、参考答案: 2、设某汽车运输公司数据库中有三个实体集。一是“车队”实体集,属性有车队号、车队名等;二是“车辆”实体集,属性有牌照号、厂家、出厂日期等;三是“司机”实体集,属性有司机编号、姓名、电话等。 车队与司机之间存在“聘用”联系,每个车队可聘用若干司机,但每个司机只能应聘于一个车队,车队聘用司机有“聘用开始时间”和“聘期”两个属性; 车队与车辆之间存在“拥有”联系,每个车队可拥有若干车辆,但每辆车只能属于一个车队; 司机与车辆之间存在着“使用”联系,司机使用车辆有“使用日期”和“公里数”两个

属性,每个司机可使用多辆汽车,每辆汽车可被多个司机使用。 (1)请根据以上描述,绘制相应的E-R图,并直接在E-R图上注明实体名、属性、联系类型; (2)将E-R图转换成关系模型,画出相应的数据库模型图,并说明主键和外键。 (3)分析这些关系模式中所包含的函数依赖,根据这些函数依赖,分析相应的关系模式达到了第几范式。对这些关系模式进行规范化。 2、参考答案: (1)E-R图设计如下: (2)转换成的关系模型应具有4个关系模式: 车队(车队号,车队名) 车辆(车牌照号,厂家,生产日期,车队号) 司机(司机编号,姓名,电话,车队号,聘用开始时间,聘期) 使用(司机编号,车辆号,使用日期,公里数) 3、设某商业集团数据库中有三个实体集。一是“仓库”实体集,属性有仓库号、仓库名和地址等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“商品”实体集,属

MySQL 数据类型 (列表)

MySQL数据类型(列表) 数据类型描述字节推荐使用 SMALLINT整数,从-32000到+32000范围2存储相对比较小的整数。 比如:年纪,数量 INT整数,从-2000000000到 +2000000000范围4存储中等整数 例如:距离 BIGINT不能用SMALLINT或INT描述的 超大整数。8存储超大的整数 例如:科学/数学数据 FLOAT单精度浮点型数据4存储小数数据 例如:测量,温度 DOUBLE双精度浮点型数据8需要双精度存储的小数数据 例如:科学数据 DECIMAL用户自定义精度的浮点型数据变量;取决于精度与长度以特别高的精度存储小数数据。 例如:货币数额,科学数据 CHAR固定长度的字符串特定字符串长度(高达255字符)存储通常包含预定义字符串的变量 例如:定期航线,国家或邮编 VARCHAR具有最大限制的可变长度的字符 串变量;1+实际字符串长度(高 达255字符) 存储不同长度的字符串值(高达一个特定的 最大限度). 例如:名字,密码,短文标签 TEXT没有最大长度限制的可变长度的 字符串Variable;2+聽actual string length 存储大型文本数据 例如:新闻故事,产品描述 BLOB二进制字符串变量;2+实际字符串长度存储二进制数据 例如:图片,附件,二进制文档 DATE以yyyy-mm-dd格式的日期3存储日期 例如:生日,产品满期 TIME以hh:mm:ss格式的时间3存储时间或时间间隔 例如:报警声,两时间之间的间隔,任务开 始/结束时间 DATETIME以yyyy-mm-ddhh:mm:ss格式结合 日期和时间8存储包含日期和时间的数据 例如:提醒的人,事件 TIMESTAMP以yyyy-mm-ddhh:mm:ss格式结合 日期和时间4记录即时时间 例如:事件提醒器,“最后进入”的时间标 记 YEAR以yyyy格式的年份1存储年份 例如:毕业年,出生年 ENUM一组数据,用户可从中选择其中 一个1或2个字节存储字符属性,只能从中选择之一 例如:布尔量选择,如性别 SET一组数据,用户可从中选择其中 0,1或更多。从1到8字节;取决于设置的大小存储字符属性,可从中选择多个字符的联 合。 例如:多选项选择,比如业余爱好和兴趣。

第7章 数据库设计(习题集)

第七章数据库设计(习题集) 二、选择题 1、如何构造出一个合适的数据逻辑结构是(C)主要解决的问题。 A.理结构设计B.数据字典 C.逻辑结构设计D.关系数据库查询 2、概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的(B)。 A.数据模型B.概念模型 C.层次模型D.关系模型 3、数据库设计中,确定数据库存储结构,即确定关系、索引、聚簇、日志、备份等数据的存储安排和存储结构,这是数据库设计的(D )。 A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段 4、在数据库设计中,将ER图转换成关系数据模型的过程属于(B)。 A.需求分析阶段B.逻辑设计阶段 C.概念设计阶段D.物理设计阶段 5、数据库物理设计完成后,进入数据库实施阶段,下述工作中,(D )一般不属于实施阶 段的工作。 A.建立库结构B.系统调试C.加载数据D.扩充功能 6、数据库设计可划分为六个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上建什么样的索引”这一设计内容应该属于(C)设计阶段。 A.概念设计B.逻辑设计C.物理设计D.全局设计 7、(C )是用来描述数据库概念模型的工具。 A.二维表B.关系模型 C.E--R图D.数据流图 8、数据流程图是用于描述结构化方法中(D)阶段的工具。 A. 概要设计 B. 可行性分析 C. 程序编码 D. 需求分析 9、数据库设计中,用E-R图赖描述信息结构但不涉及信息在计算机中的表示,这是数据库设计(C)。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 10、在数据库设计中,将E-R图转换成关系数据模型的过程属于(B)。 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 11、子模式DDL是用来描述(B )。 A. 数据库的总体逻辑结构 B. 数据库的局部逻辑结构 C. 数据库的物理存储结构 D. 数据库的概念结构 12、在E-R模型向关系模型转换时,M:N的联系转换为关系模式时,其关键字是(C )。 A.M端实体的关键字 B.N端实体的关键字 C.M、N端实体的关键字组合 D.重新选取其他属性

mysql字段类型

1. mysql的数据类型 在mysql中有如下几种数据类型: (1)数值型 数值是诸如32 或153.4 这样的值。mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。而 1.24e12 不是合法的,因为指数前的符号未给出。 浮点数由整数部分、一个小数点和小数部分组成。整数部分和小数部分可以分别为空,但不能同时为空。 数值前可放一个负号“-”以表示负值。 (2)字符(串)型 字符型(也叫字符串型,简称串)是诸如“hello,world!”或“一个馒头引起的血案”这样的值,或者是电话号码这样的值。既可用单引号也可用双引号将串值括起来。 初学者往往分不清数值和字符串的区别。都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的是要参与计算的,比如它是金融中的一个货款总额;而字符型的是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。 (3)日期和时间型 日期和时间是一些诸如“2006-07-12”或“12:30:43”这样的值。mysql还支持日期/时间的组合,如“2006-07-12 12:30:43”。 (4)null值 null表示未知值。比如填写表格中通讯地址不清楚留空不填写,这就是null 值。 我们用create table语句创建一个表(参看前面的章节),这个表中包含列的定义。例如我们在前面创建了一个joke表,这个表中有content和writer 两个列: create table (

MySQL数据类型

int 允许从-2,147,483,648 到2,147,483,647 的所有数字。 4 字节bigint 允许介于-9,223,372,036,854,775,808 和9,223,372,036,854,775,807 之间的所有数字。8 字节decimal(p,s) 固定精度和比例的数字。允许从-10^38 +1 到10^38 -1 之间的数字。 p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是1 到38 之间的值。默认是18。 s 参数指示小数点右侧存储的最大位数。s 必须是0 到p 之间的值。默认是0。 5-17 字节 numeric(p,s) 固定精度和比例的数字。允许从-10^38 +1 到10^38 -1 之间的数字。 p 参数指示可以存储的最大位数(小数点左侧和右侧)。p 必须是1 到38 之间的值。默认是18。 s 参数指示小数点右侧存储的最大位数。s 必须是0 到p 之间的值。默认是0。 5-17 字节 smallmoney 介于-214,748.3648 和214,748.3647 之间的货币数据。 4 字节money 介于-922,337,203,685,477.5808 和922,337,203,685,477.5807 之间的货币数据。8 字节 float(n) 从-1.79E + 308 到 1.79E + 308 的浮动精度数字数据。参数n 指示该字段保存 4 字节还是8 字节。 float(24) 保存4 字节,而float(53) 保存8 字节。n 的默认值是53。4 或8 字节 real 从-3.40E + 38 到3.40E + 38 的浮动精度数字数据。 4 字节

分布式数据库选型论证报告(WORD)

分布式数据库选型论证 第一章主流数据库技术介绍 一、关系型数据库系统 是一种基于关系模型的数据库管理系统。这种关系模型最初是由埃德加?科德在IBM的实验室提出的。目前很多主流的数据库都是遵循这种关系模型。这种关系型的数据库管理系统从上世纪80年代开始被广泛应用于存储财务数据、制造业数据、个人信息数据,互联网各类应用的数据。目前主流的RDBMS有Oracle Database、Microsoft SQL Server、MySQL、PostgreSQL等。 关系型数据库的特点主要有一个数据库由多张表构成、每张表都有用户定义的表结构信息(schema)来描述表格的结构。每张表由行构成,每行包含若干列,列的属性由表格的schema定义。关系型数据库可以解释为面向行的数据库,每张表具有横向的扩展性,数据表是面向行增长的,而列的模式是相对固定的。其功能主要包括以下几点。 数据的检索功能:SQL语言的检索功能主要包括基于主键、二级字段的查询、聚合查询、表连接查询等功能。事实上数据库的查询功能是SQL语言里被使用最多的功能。 1).数据的操作功能:包括数据的插入、删除、修改。数据的操作以行为单位,可以修改某具体行的特定列的值,也可以批量的对一组符合条件的行数据进行操作。 2).事务处理的功能:数据库事务是数据库管理系统中执行时一个独立的单位,一般事务由一组数据库管理系统中的指令组成。事务之间相互独立,事务具有ACID四个重要的特性:原子性(Atomicity)、一致性(Consistency)、隔离性(isolation)和持久性(durability)。事务也是区分很多NoSQL与SQL数据库的重要特性之一。 3).表结构的定义功能:数据库定义语言(DDL)是用于创建表,修改以及删除表结构(schema)的。DDL中也包括了对某个字段建立索引的功能。

Navicat与Mysql详解

Navicat与mysql详解 第一部分对Navicat的操作 1.连接 创建新连接 首先启动Navicat for MySQL,点击左上角的【连接】(如图): 点击之后便会出现如图所示的界面(如图): 连接名可以任意取,主机名或IP地址则填写你需要连接数据库的IP地址,如是本地,则填localhost,但推荐填写,这表示回送地址,指本地机,一般是用来测试的。端口默认为3306,用户名默认是root,而密码则是安装时自己填写的密码。 填写完后,可点击该界面左下角的测试连接,如显示连接成功则可操纵数据库,如失败,请仔细检查,或度娘。

2.数据库 创建新数据库 双击你创建的连接,你会发现有几个MySQL预先创建好的数据库,这个你可暂且不管。自己新建几个数据库。 右击你新建的连接,点击新建数据库。 数据库名自取,字符集一般选uft8,排序规则可自选。 3.表 创建新表 双击你创建的数据库,如图,我创建的数据库名叫test,双击之后会变出现一些选项。 右击表,新建表。 如图所示,每一行数据有六列,从左到右分别是:数据的名称(最好是英文),该数据的类型(可度娘MySQL的数据类型,可对应java的基本数据类型),该数据允许的长度,允许保留的小数点位数,允不允许可以为空值,最后一个是设置主键。 一个表最好有一个主键,同一个表里每一行数据的主键值各不相同,这样才能将同一表的数据区分开来,操纵数据也方便得多。 如图填写完之后,点击左上角的保存,此时会弹出一个窗口让你填写表名,表名写入之后返回Navicat主窗口,就会发现自己新建的数据库里多了一个表。 依次,我们新建四个表,并且使四个表之间相互联系。

数据库设计练习题

数据库设计练习题 习题1 设某商业集团数据库中有三个实体集。 一是“商店”实体集,属性有商店编号、商店名、地址等; 二是“商品”实体集,属性有商品号、商品名、规格、单价等; 三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。 商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售每一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。 试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 解:ER图如下图所示。

所转换成的关系: 商品(商品号,商品名,规格,单价) 商店(商店编号,商店名,地址) 销售(商店编号,商品号,月销售量) 职工(职工编号,姓名,性别,业绩,聘期,月薪,商店编号) 习题2 设某商业集团数据库中有三个实体集。

一是“商品”实体集,属性有商品号、商品名、规格、单价等; 二是“商店”实体集,属性有商店号、商店名、地址等; 三是“供应商”实体集,属性有供应商编号、供应商名、地址等。 供应商与商品间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多个供应商订购,供应商供应每种商品有月供应量;商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品可在多个商店销售,商店销售商品有月计划数。 试画出ER图,并在图上注明属性、联系的类型。再转换成关系模式集,并指出每个关系模式的主键和外键。 解: ER图及属性、联系图为:

这个ER图转换的关系模式如下: 商品(商品号,商品名,规格,单价) 供应商(供应商编号,供应商名,地址) 商店(商店号,商店名,地址) 供应(商品号,供应商编号,月供应量) 销售(商品号,商店号,月计划数) 习题3 设某汽车运输公司数据库中有三个实体集。 一是“车队”实体集,属性有车队号、车队名等;

MySQL数据表类型 数据类型

表类型 MySQL的数据表类型很多,其中比较重要的是MyISAM,InnoDB这两种。 这两种类型各有优缺点,需要根据实际情况选择适合的,MySQL支持对不同的表设置不同的类型。下面做个对比: 一般情况下我觉得选择MyISAM就行,如果需要事务,或者需要很多用户同时修改某个数据表里的数据时,可以考虑InnoDB数据表。 数据类型 1.整型(xxxint) 右侧的取值范围是在未加unsigned关键字的情况下,如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)。 书上说int(m)括弧里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,我测了一下,定义一个字段number 类型为int(4),插入一条记录"123456",用mysql query broswer执行SELECT查询,返回的结果集中123456正确显示,没有影响到显示的宽度,不知道这个m有什么用。 2.浮点型(float和double)

参数m只影响显示效果,不影响精度,d却不同,会影响到精度。 比如设一个字段定义为float(5,3),如果插入一个数123.45678,实际数据库里存的是123.457,小数点后面的数别四舍五入截成457了,但总个数不受到限制(6位,超过了定义的5位)。 3.定点数(decimal) decimal(m,d) 定点类型 浮点型在数据库中存放的是近似值,而定点类型在数据库中存放的是精确值。参数m是定点类型数字的最大个数(精度),范围为0~65,d小数点右侧数字的个数,范围为0~30,但不得超过m。 对定点数的计算能精确到65位数字。 4.字符串(char,varchar,xxxtext) 1.都可以通过指定n,来限制存储的最大字符数长度,char(20)和varchar(20)将最多只能存储20个字符,超过的字符将会被截掉。n必须小于该类型允许的最大字符数。 2.char类型指定了n之后,如果存入的字符数小于n,后面将会以空格补齐,查询的时候再将末尾的空格去掉,所以char类型存储的字符串末尾不能有空格,varchar不受此限制。 3.内部存储的机制不同。char是固定长度,char(4)不管是存一个字符,2个字符或者4个字符(英文的),都将占用4个字节,varchar是存入的实际字符数+1个字节(n<=255)或2个字节(n>255),所以varchar(4),存入一个字符将占用2个字节,2个字符占用3个字节,4个字符占用5个字节。 4.char类型的字符串检索速度要比varchar类型的快。 varchar和text: 1.都是可变长度的,最多能存储65535个字符。 2.varchar可指定n,text不能指定,内部存储varchar是存入的实际字符数+1个字节 (n<=255)或2个字节(n>255),text是实际字符数+2个字节。 3.text类型不能有默认值。

数据库原理习题与答案 第7章数据库设计

第七章.数据库设计 习题: 一.填空题 1.数据库设计的几个步骤是。 2.“为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的设计阶段。 3.在数据库设计中,把数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为。 4.数据库实施阶段包括两项重要的工作,一项是数据的,另一项是应用程序的编码和调试。 5.在设计分E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个分E-R图之间难免有不一致的地方,这些冲突主要有、和三类。 6.E-R图向关系模型转化要解决的问题是如何将实体和实体之间的联系转换成关系模式,如何确定这些关系模式的。 二.选择题 1.在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的阶段。 A.需求分析 B.概念设计 C.逻辑设计 D.物理设计 2.在关系数据库设计中,设计关系模式是的任务。 A.需求分析阶段 B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 3.从E-R模型向关系模型转换时,一个M:N联系转换成关系模式时,该关系模式的关键字是。 A.M端实体的关键字 B.N端实体的关键字 C.M端实体关键字与N端实体关键字组合 D.重新选取其他属性

4.当局部E-R图合并成全局E-R图时可能出现冲突,不属于合并冲突的是。 A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突 5.概念模型独立于。 A.E-R模型 B.硬件设备和DBMS C.操作系统和DBMS D.DBMS 三.简答题 1.数据字典的内容和作用是什么。 2.什么是数据库的概念结构,试述其特点和设计策略。 3.什么是数据库的逻辑结构设计?试述其设计步骤。 4.试述数据库物理设计的内容和步骤。 四. 一个图书借阅管理数据库要求提供下述服务: 1)可随时查询书库中现有书籍的品种,数量与存放位置。所有各类书籍均可由书号唯一标识。 2)可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。约定任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。 3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。约定一个出版社可以出版多种书籍,同一本书仅为一个出版社出版,出版社名具有唯一性。 根据以上情况,试构造满足需求的E-R图,并转换成等价的关系模型结构。 参考答案:

相关主题