搜档网
当前位置:搜档网 › 实验四 数据库接口实验

实验四 数据库接口实验

实验四   数据库接口实验
实验四   数据库接口实验

实验四数据库接口实验-1

1.实验目的

1.通过实验了解通用数据库应用编程接口ODBC的基本原理和实现机制,熟悉主要的

ODBC接口的语法和使用方法。

2.利用C语言(或其它支持ODBC接口的高级程序设计语言)编程实现简单的数据库应用

程序,掌握基于ODBC的数据库访问的基本原理和方法。

3.学习java语言,并采用JDBC接口方式对数据库进行访问。

2.实验内容

1.以教科书第四章关于SQL语言相关内容为基础,课后查阅、自学ODBC接口有关内容,

包括ODBC的体系结构、工作原理、数据访问过程、主要API接口的语法和使用方法等。

2.以实验二建立的学生数据库为基础,编写C语言(或其它支持ODBC接口的高级程序设

计语言) 数据库应用程序,按照如下步骤访问数据库

(a)Step1. ODBC初始化,为ODBC分配环境句柄

(b)Step2. 建立应用程序与ODBC数据源的连接

(c)Step3. 利用SQLExecDirect语句,实现数据库应用程序对数据库的建立、查询、

修改、删除等操作

(d)Step4. 检索查询结果集

(e)Step5. 结束数据库应用程序

3.实验要求

1.要求所编写的数据库访问应用程序中使用到以下主要的ODBC API函数:

(1)SQLALLocEnv:初始化ODBC环境,返回环境句柄

(2)SQLALLocConnect:为连接句柄分配内存并返回连接句柄

(3)SQLConnect:连接一个SQL数据资源,连接一个SQL数据资源,允许驱动器向用户询

问信息

(4)SQLDriverConnect:

(5)SQLALLocStmt: 为语句句柄分配内存, 并返回语句句柄

(6)SQLExecDirect:把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访

(7)SQLFetchAdvances:将游标移动到到查询结果集的下一行(或第一行)

(8)SQLGetData:按照游标指向的位置,从查询结果集的特定的一列取回数据

(9)SQLFreeStmt:释放与语句句柄相关的资源

(10)SQLDisconnect :切断连接

(11)SQLFreeConnect :释放与连接句柄相关的资源

(12)SQLFreeEnv :释放与环境句柄相关的资源

4.实验环境

操作系统:Microsoft Windows 7旗舰版(32位)。

数据库版本:MySQL 6.2。

ODBC连接:mysql-connector-odbc-5.3.4-win32.msi

5.实验步骤

5.1 ODBC数据源配置

(1)安装mysql-connector-odbc-5.1.11-win32.msi后,在控制面板-管理工具-ODBC数据源管理器-驱动程序可以看到刚刚装好的mysql驱动。

(2)系统DSN下,点击“添加”,从“创建新数据源”列表中选择刚安装的驱动。

(3)填写数据源的相关配置信息,填好后点击“Test”进行测试,提示connection successful 表示连接数据库成功。

5.2 ODBC实现方法

5.2.1初始化ODBC,获取ODBC环境句柄

HENV env; //定义环境句柄

retcode = SQLAllocEnv(&env); //初始化ODBC环境,分配环境句柄env

无论程序将建立多少个ODBC连接,这个过程只需执行一次即可。

5.2.2与ODBC数据源建立连接

①调用SQLAllocConnect函数获取连接句柄

HDBC hdbc; //定义连接句柄

retcode = SQLAllocConnect(env, &hdbc); //为连接句柄分配内存并返回连接句柄hdbc ②调用SQLConnect函数建立连接

/* 系统数据源为mysql ODBC,登录用户名为root,密码为krms/

retcode = SQLConnect(hdbc, (SQLCHAR*)"mysql ODBC", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR*)"", SQL_NTS); //连接一个数据库

5.2.3通过连接向ODBC数据库提交SQL语句,实现存取数据

①调用SQLAllocStmt函数获取语句句柄。

HSTMT hstmt; //定义语句句柄

retcode = SQLAllocStmt(hdbc, &hstmt); //为语句句柄分配内存,并返回语句句柄

②调用SQLExecDirect函数执行SQL 语句

retcode = SQLExecDirect(hstmt, sql_dolist[i], SQL_NTS);

//把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问

5.2.4结束应用程序

在应用程序完成数据库操作,退出运行之前,必须释放程序中使用的系统资源。这些系统资源包括:语句句柄、连接句柄和ODBC环境句柄。

完成这个过程的步骤如下:

①调用SQLFreeStmt 函数释放语句句柄及其相关的系统资源。

SQLFreeStmt(hstmt, SQL_DROP); //释放与语句句柄相关的资源

②调用SQLDisconnect 函数关闭连接。

SQLDisconnect(hdbc); //切断连接

③调用SQLFreeConnect 函数释放连接句柄及其相关的系统资源。

SQLFreeConnect(hdbc); //释放与连接句柄相关的资源

④调用SQLFreeEnv 函数释放环境句柄及其相关的系统资源,停止ODBC 操作。

SQLFreeEnv(env); //释放与环境句柄相关的资源

5.3程序代码

#define _CRT_SECURE_NO_DEPRECA TE

#include

#include

#include"windows.h"

#include"sql.h"

#include"sqlext.h"

#include"sqltypes.h"

#include"odbcinst.h"

#pragma comment(lib,"odbc32.lib")

struct course_cell

{

char cno[5];

char cname[20];

int lhour;

int credit;

char semester[5];

};

struct student_cell

{

char sno[5];

char sname[20];

char sex[4];

char bdate[20];

char dept[20];

char classno[10];

};

struct sc_cell

{

char sno[5];

char cno[5];

int grade;

};

unsigned char sql_select[3][100] = { "select * from db.course", "select * from db.student", "select * from db.sc" }; //SQL查询语句

unsigned char sql_dolist[3][100] = { "insert into db.course values('C10','软件工程',32,2,'秋')", "update db.course set credit='4' where cno='C10'", "delete from db.course where cno='C10'" };

//插入、修改、删除语句

unsigned char do_name[3][10] = { "insert", "update", "delete" };

unsigned char buff[100];

void show_course(HDBC hdbc) //显示course的内容

{

HSTMT hstmt;

RETCODE retcode;

long lenOut1, lenOut2, lenOut3, lenOut4, lenOut5;

struct course_cell* ccell;

ccell = (struct course_cell*)malloc(sizeof(struct course_cell));

retcode = SQLAllocStmt(hdbc, &hstmt);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{//SQLBindCol将应用程序的数据缓冲绑定到结果集的各列(语句句柄,结果集绑定的列号,目标类型,目标值,缓冲区长度,(输入/输出)指向绑定列的长度)

retcode = SQLBindCol(hstmt, 1, SQL_C_CHAR, ccell->cno, 5, &lenOut1);

retcode = SQLBindCol(hstmt, 2, SQL_C_CHAR, ccell->cname, 20, &lenOut2);

retcode = SQLBindCol(hstmt, 3, SQL_C_SLONG, &ccell->lhour, sizeof(int), &lenOut3);

retcode = SQLBindCol(hstmt, 4, SQL_C_SLONG, &ccell->credit, sizeof(int), &lenOut4);

retcode = SQLBindCol(hstmt, 5, SQL_C_CHAR, ccell->semester, 5, &lenOut5);

retcode = SQLExecDirect(hstmt, sql_select[0], SQL_NTS);

//把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

printf("db.course is as following:\n");

printf("----------------------------------------------------------------\n");

printf("cno cname lhour credit semester\n");

retcode = SQLFetch(hstmt);

/*SQLFetch fetches the next rowset of data from the result set and returns data for all bound columns.

相当与SQLFetchAdvances和SQLGetData两个函数*/

while (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

printf("%-10s%-20s%-15d%-16d%-5s\n", ccell->cno, ccell->cname, ccell->lhour, ccell->credit, ccell->semester);

retcode = SQLFetch(hstmt);

}

printf("----------------------------------------------------------------\n\n");

}

}

SQLFreeStmt(hstmt, SQL_DROP);//释放语句句柄

}

void show_student(HDBC hdbc) //显示course的内容

{

char sno[5];

char sname[20];

char sex[2];

char bdate[20];

char dept[20];

char classno[10];

HSTMT hstmt;

RETCODE retcode;

long lenOut1, lenOut2, lenOut3, lenOut4, lenOut5, lenOut6;

struct student_cell* ccell;

ccell = (struct student_cell*)malloc(sizeof(struct student_cell));

retcode = SQLAllocStmt(hdbc, &hstmt);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{//SQLBindCol将应用程序的数据缓冲绑定到结果集的各列

retcode = SQLBindCol(hstmt, 1, SQL_C_CHAR, ccell->sno, 5, &lenOut1);

retcode = SQLBindCol(hstmt, 2, SQL_C_CHAR, ccell->sname, 20, &lenOut2);

retcode = SQLBindCol(hstmt, 3, SQL_C_CHAR, &ccell->sex, 4, &lenOut3);

retcode = SQLBindCol(hstmt, 4, SQL_C_CHAR, &ccell->bdate, 20, &lenOut4);

retcode = SQLBindCol(hstmt, 5, SQL_C_CHAR, ccell->dept, 20, &lenOut5);

retcode = SQLBindCol(hstmt, 6, SQL_C_CHAR, ccell->classno, 10, &lenOut6);

retcode = SQLExecDirect(hstmt, sql_select[1], SQL_NTS);

//把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

printf("db.student is as following:\n");

printf("-----------------------------------------------------------------------------\n");

printf("sno sname sex bdate dept classno\n");

retcode = SQLFetch(hstmt);

/*SQLFetch fetches the next rowset of data from the result set and returns data for all bound columns.

相当与SQLFetchAdvances和SQLGetData两个函数*/

while (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

printf("%-10s%-15s%-10s%-25s%-10s%-15s\n", ccell->sno, ccell->sname, ccell->sex, ccell->bdate, ccell->dept,ccell->classno);

retcode = SQLFetch(hstmt);

}

printf("------------------------------------------------------------------------------\n\n");

}

}

SQLFreeStmt(hstmt, SQL_DROP);//释放语句句柄

}

int main()

{

//1.初始化ODBC,获取ODBC环境句柄

HENV env; //定义环境句柄

HDBC hdbc; //定义连接句柄

HSTMT hstmt; //定义语句句柄

RETCODE retcode; //定义返回代码变量

int choice = -1;

int i = 0;

retcode = SQLAllocEnv(&env); //初始化ODBC环境,分配环境句柄

//2.与ODBC数据源建立连接

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

retcode = SQLAllocConnect(env, &hdbc); //为连接句柄分配内存并返回连接句柄,获取连接句柄

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

retcode = SQLConnect(hdbc, (SQLCHAR*)"mysql ODBC", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR*)"", SQL_NTS); //连接一个数据库

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)

{

while (choice != 0)

{

printf("请输入操作选项:1.查看课程信息 2.查看学生信息 3.插入操作 4.修改操作 5.删除操作0.退出\n");

scanf("%d", &choice);

switch (choice)

{

case 1:

show_course(hdbc);

break;

case 2:

show_student(hdbc);

break;

case 3:

case 4:

case 5:

i = choice - 3;

retcode = SQLAllocStmt(hdbc, &hstmt); //3.通过连接向ODBC数据库提交SQL语句,实现存取数据

//为语句句柄分配内存,并返回语句句柄

retcode = SQLExecDirect(hstmt, sql_dolist[i], SQL_NTS);

//把SQL语句送到数据库服务器,请求执行由SQL语句定义的数据库访问

printf("%s ", do_name[i]);

if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) printf("success!\n\n");

else printf("fail!\n\n");

SQLFreeStmt(hstmt, SQL_DROP); //释放与语句句柄相关的资源

show_course(hdbc);//显示操作后的新course内容

break;

default:

break;

}

}

SQLDisconnect(hdbc); //切断连接

}

SQLFreeConnect(hdbc); //释放与连接句柄相关的资源

}

SQLFreeEnv(env); //释放与环境句柄相关的资源

}

system("pause");

return 0;

}

6.实验结果

6.1.查看课程信息

6.2插入操作

执行语句:insert into db.course values('C10','软件工程',32,2,'秋')

6.3修改操作

执行语句:update db.course set credit='4' where cno='C10',将cno为C10的课程学分更改为4分。

6.4删除操作

执行语句:delete from db.course where cno='C10',将cno为C10的课程删除

6.5退出

6.6解决问题

第一次运行成功时的汉字显示为’?’,原因为导入的是txt格式,不是sql。解决方法是更改ODBC数据源的编码格式。

7.实验小结

首先创建了ODBC数据源,与数据库进行连接,然后按照以下步骤进行代码编写:

1.初始化ODBC,获取ODBC环境句柄

2.与ODBC数据源建立连接

3.通过连接向ODBC数据库提交SQL语句,实现存取数据

4.结束应用程序,释放连接

需要提交的SQL语句实现存放在数组中,在第三步通过语句句柄提交执行,也可以仅分配内存空间,输入sql语句,再执行。

通过这次实验,我了解了数据库应用编程接口ODBC的基本原理和实现机制,并对MySQL中的ODBC的使用和ODBC接口的语法和函数等有了进一步的了解。还通过在VS 中编写C语言程序实现简单的数据库应用程序,较好地掌握基于ODBC的数据库访问的基本原理和方法,在实践中较好的掌握ODBC相关知识。

天津理工大学计算机专业数据库实验二

实验报告 学院(系)名称:计算机与通信工程学院 姓名范学号2009 专业计算机科学与技术 班级中加4班实验项目数据库控制与编程 课程名称数据库系统概论课程代码 实验时间2011年11月29日实验地点主校区7—219 批改意见 成绩 教师签 字: 一.实验目的 以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程设计做准备。 二.实验工具软硬件环境 编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。 软件环境:Windows 2000MS SQL Server 硬件环境:P4 2.4GHz 256内存 三.实验内容和要求 所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。 I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。 II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。 a)查询学生表中的所有学生,并实现调用。 b)修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。 c)向学生表中插入学生,并实现调用。 d)查询姓名为@sname选修的数据库课程的成绩,并实现调用。 e)查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。需要接取程序运行界面。 四. 实验步骤

实验七 数据库的更新及视图的定义与维护

实验七数据的更新及视图的定义与维护 一.实验目的 1.掌握使用SQL语言向数据库中插入数据、修改数据和删除数据等更新操作 2.掌握视图的定义与维护操作 3. 加深对视图在关系数据库中的作用的理解 二.实验准备 1.装有SQL Server 2005的PC机。 2. 成功创建各数据库、数据库表、并已插入各种数据。 三.实验内容1 1.打开“SQL Server Management Studio”窗口 2.创建学生选课数据库“S_T” 3.在学生选课数据库中完成以下插入数据的操作: (1)将一个新学生元组(学号:200215128;姓名:陈东;性别:男;年龄:18;所在系:IS)插入学生表中; (2)插入一条选课记录(‘200215128’,1); (3)对每一个系,求学生的平均年龄,并把结果存入数据库。 提示:首先在学生-选课数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生平均年龄;然后对student表按系分组求平均年龄,再把系名和 平均年龄存入新表中。 4.在学生选课数据库中完成以下修改数据的操作: (4)将学生200215121的年龄改为22岁; (5)将所有学生的年龄增加一岁; (6)将计算机科学系全体学生的成绩置零; 5.在学生选课数据库中完成以下删除数据的操作: (7)删除学号为200215122的学生记录; (8)删除所有的学生选课记录; (9)删除计算机科学系所有学生的选课记录 四.实验内容2 1. 在学生选课数据库中完成以下创建视图的操作: (1)建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生; (2)建立信息系选修了“1”号课程的学生视图; (3)建立信息系选修了“1”号课程且成绩在90分以上的学生视图; (4)定义一个反映学生出生年份的视图; (5)将学生的学号及他的平均成绩定义为一个视图; (6)将Student表中所有女生记录定义为一个视图; 2. 在学生选课数据库中完成以下删除视图的操作: (7)选择一个您所建的视图进行删除; 3. 在学生选课数据库中完成以下查询视图的操作: (8)在信息系学生的视图中找出年龄小于20岁的学生; (9)查询选修了1号课程的信息系学生;

实验八 数据库的安全性

实验八数据库的安全 T9.1 数据库用户的管理 1、实验目的 (1)掌握Windows登录名的建立与删除方法。 (2)掌握SQL Server登录名的建立与删除方法。 (3)掌握数据库用户创建于管理的方法。 2、实验准备 (1)了解windows身份验证模式与SQL Server身份验证模式的原理。 (2)了解数据库用户的建立与删除方法。 3、实验步骤 (1)Windows登录名。 ①使用界面方式创建Windows身份模式的登录名。方法如下: 第一步以管理员身份登录到Windows,选择“开始”,打开“控制面板”中的“性能和维护”,选择其中的“管理工具”,双击“计算机管理”进入“计算机管理”窗口。 在该窗口中选择“本地用户和组”中的“用户”图标,右击,在弹出的快捷菜单中选择“新用户”菜单项,打开“新用户”窗口,新建一个用户zheng。 第二步一管理员身份登录到SQL Server Management Studio,在对象资源管理器中选择“安全性”,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中单击“搜索”按钮添加Windows用户名zheng。选择“Windows身份验证模式”,单击“确定”按钮完成。 ②使用命令方式创建Windows身份模式的登录名,语句如下: 【思考与练习】 使用用户zheng登录Windows,然后启动SQL Server Management Studio,以Windows 身份验证模式连接。看看与以系统管理员身份登录时有什么不同。 (2)SQL Server登录名。 ①使用界面方式创建SQL Server登录名。方法为:在对象资源管理器的“安全性”中,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中输入要创建的登录名“yan”,并选择“SQL Server 身份验证模式”,输入密码,取消选择“用户在下次登录时必须更改密码”选项,单击“确认”按钮。 ②以命令方式创建SQL Server登录名,语句如下:

小型数据库实验设计报告

MK超市数据库设计实验报告 课程名称数据库系统原理成绩评定 实验项目名称数据库设计指导教师朱蔚恒 实验项目编号实验四实验项目类型设计性 学生姓名,学号郭美岑2012050754 梁蕴嘉2012050725 学院公共管理应急管理学院系应急管理专业应急管理

一背景 最初的时候,超市管理由人力完成,但是超市的规模越来越大的时候,再以人力管理可能会造成数据缺失冗余等各种各样的问题,而且人力工作效率低。因此用数据库进行管理可以把数据集中、统一、规划,实现科技管理。本数据库主要作用是在一个小超市中,进行对员工档案。库存商品的管理以及销售管理。这个数据库提供的是信息咨询信息检索,信息储存的多项功能。可以实现多项功能。 二实验目的 1学习数据库的我们不仅是要了解数据库的基本知识和简单操作,而且要能掌握数据库设计的方法和步骤,而且能自己动手设计出一个能够付诸于实际的数据库,能够为企业或者是小团体带来方便。同时数据库设计也能考察我们对数据库的实际应用能力。 三实验步骤 1. 需求分析 2. 概念模型设计(E-R图) 3. 逻辑结构设计 4. 物理结构分析 5. 将SQL语言输入数据库 6. 数据库的实施,包括加载数据库和调试运行程序 步骤一: 需求分析: 主要包括员工档案管理、库存商品管理、销售设计程序,厂商信息员工档案管理:包括员工的基本个人信息(编号姓名性别年龄电话) 库存商品信息:包括进货和剩余货物的详细信息,易于查找库存量 销售设计程序:包括每次售出商品的详细信息 厂商信息:能够查找到每个货物的厂家。查询商品的基本信息(编号名称地址电话号联系人) 商品信息:包括商品编号,金额,数量等等 具体的功能有:1.输入信息的功能 (1)输入商品的信息:包括编号,名称,数量,进货价,和卖出价格 (2)需要输入员工的信息:包括姓名,性别,年龄,电话号码等 (3)需要输入入库记录信息:包括商品编号,商品名称,商品类别等 2.具有信息储存的功能 3.具有信息浏览的功能 4.具有信息查询的功能 6.具有系统维护功能 步骤二:

实验4数据库的简单查询和连接查询实验

实验4 数据库的简单查询和连接查询实验 1、实验目的 本实验的目的是使学生掌握SQL Server查询分析器的使用方法,加深对SQL和SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 2、实验时数2学时 3、实验内容 该实验在上一个实验的基础上进行 简单查询操作 1、求数学系(ma)学生的学号和姓名 select Sno,Sname from Student where Sdept='ma' 2、求选修了课程的学生学号 select Sno srom SC 3、求选修课程号为‘1’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学 号的升序排列。 select Sno,Grade from SC where Cno='1' order by Grade DESC ,Sno ASC 4、求选修课程号为‘1’且成绩在80~90之间的学生学号和成绩,并成绩乘以输出。 select Sno ,Grade* from SC where Grade>=80 and Grade<=90 5、求数学系(ma)或计算机系(cs)姓张的学生的信息。 select * from Student where Sdept in('ma' ,'cs' ) and Sname='张*' 6、求缺少了成绩的学生的学号和课程号 select Sno ,Cno from SC where Grade=0 or Grade=NULL 连接查询操作 7、查询每个学生的情况以及他所选修的课程 select * from Student ,Course 8、求学生的学号、姓名、选修的课程及成绩 select ,Sname,Cname,Grade from Student,SC,Course where = and = 9、求选修课程号为‘1’且成绩在90以上的学生学号、姓名和成绩

数据库原理实验6数据更新操作

实验六数据更新操作 1 实验目的与要求 (1)掌握基本表的INSERT、UPDATE、DELETE操作。 (2)正确理解更新操作中涉及到的相关约束问题。 2 实验内容 根据BookDB中4张关系表,完成以下更新操作: (1) 分别给这4张表添加信息,要求图书分类表、图书表、读者表各插入5个元组,借阅表插入20个元组。 答:详细见BookDB.sql (2) 将联合股份有限公司的读者工作单位修改为联合立华股份有限公司。 update Reader48 set workunit48='联合立华股份有限公司' where workunit48='联合股份有限公司'

(3) 将入库数量最多的图书单价下调5%。 update Book48 set price48=price48*0.95 where shopNum48=(select max(shopNum48) from Book48) (4) 将“经济类”的图书单价提高10%。 update Book48 set price48=price48*1.1 where classNo48=(select distinct a.classNo48 from Book48 a, BookClass48 b where a.classNo48=b.classNo48 and b.className48='经济类') (5) 将借阅次数高于2次的图书数量增加50%。 update Book48 set shopNum48=shopNum48*1.5 where bookNo48 in( select bookNo48 from borrow48 group by bookNo48 having count(bookNo48)>=2 )

数据库安全性和完整性实验

实验9:数据库安全性实验 一、实验目的 加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法。 二、实验内容 1.数据库的安全性实验。在SQL Server企业管理器中,设置SQL Server 的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理 数据操作权限。 三、实验原理和步骤 1.设置SQL Server的安全认证模式,选择混合模式。 右键服务器属性-安全性:选择SQL Server和Windows身份验证模式。 重启服务,生效。 2.账号: sa账号登录 3.登录帐号的管理

1)将Windows帐号添加到SQL Server 2005中 创建操作系统用户- 4.数据库用户的管理 1)dbo用户; 查看banking数据库的dbo用户,查看用户权限。 2)U1用户; 创建banking数据库的U1用户,查看用户权限。 5.权限管理 1)赋予所创建的U1用户db_datareader角色,查看用户权限 2)赋予所创建的U1用户db_datawriter角色,查看用户权限 3)赋予所创建的U1用户db_owner角色,查看用户权限 4)两种方法赋予所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 5)两种方法赋予所创建的U1用户对banking数据库表branch的select 和对branch_name修改的权限,验证并写出sql语句 6)把对loan表的update权限授予所创建的U1用户用户,并允许将此 权限再授予其他用户,验证并写出sql语句 7)两种方法回收所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 8)两种方法回收所有用户对banking数据库表loan的update权限,验 证并写出sql语句 四、实验报告要求 要求写出如下设计报告: 1.用Transact-SQL写出实验操作的语句 2.实验步骤和实验结果。 3.实验中的问题和提高。 4.SQL Server中有的安全性功能。 五、注意事项 1.用户、角色和权限的职能,以及它们之间的关系。

北邮数据库实验四数据库模式的设计

北邮数据库实验四数据 库模式的设计 Revised by Chen Zhen in 2021

北京邮电大学 实验报告 课程名称数据库 实验名称数据库模式的设计班级 姓名 学号 指导老师 成绩_________ 实验

.1.实验目的 1.了解E-R图的基本概念和根据数据需求描述抽象出E-R图并将其转换为数据库逻辑模式进而实现数据库中的表和视图。 2.通过进行数据库表的建立操作,熟悉并掌握Power designer数据库表的建立方法,理解关系数据库表的结构,巩固SQL标准中关于数据库表的建立语句。 3.通过对Power designer中建立、维护视图的实验,熟悉Power designe中对视图的操作方法和途径,理解和掌握视图的概念。 .2.实验内容 1 针对以下需求信息,尽可能全面地给出各个实体的属性和实体之间的系。 在线考试系统需求信息如下: 在线考试系统是关于一门课程的授课教师安排自己的学生在线参加各种考试的应 用,如果阶段性考试,期中考试和期末考试等。在线考试系统要求有用户的登录和登出。在线考试系统主要包括用户管理、试题管理、试卷管理和考试管理功能。需要实现教师输入试题,从试题生成试卷;学生参加考试获取试卷,提交答案和给出考试成绩等主要逻辑功能。 系统的用户包括教师、学生角色,一个用户有且只有一种角色。 鉴于在线考试的客观条件限制,试题完全采用单项选择形式。试题有所属知识点、内容、分值、备选答案和唯一正确答案等属性组成。课程的知识点是确定的,可以扩展,一道试题只能考察一个知识点。

教师录入各种试题构成题库,并根据考察的知识点不同生成试卷,相同知识点的试题只能在一张试卷中出现一次,试卷由试卷标题和一定数量(即知识点的数量)的试题组成。试卷生成后,教师指定某次考试使用的试卷,学生参加考试使用统一的试卷,考试信息还包含考试标题、任教老师、考试时间。 学生登录后,可以参加考试并在提交答案后立刻得到自己的考试成绩,也可以查看自己的考试历史记录。教师登录后可以查看学生的成绩。 ?2将E-R图输入Power Designer形成概念模型 ? 3 使用Power Designe将输入的E-R图转换成数据库物理模型 ? 4 使用Power Designe将输入的数据库物理模型转化为生成数据库中的表和视图的脚 本 ? 5 执行SQl脚本,生成表和视图 ? 6 成功后,查看生成的表和视图的情况 .3.实验环境 普通PC、Windows系列操作系统、IBM DB2 数据库管理系统 .4.实验步骤、结果与分析 1)五个实体: 用户: 用户ID( UserID )、用户名(UserName)、角色(Role)、密码(Password). 试题库(ItemBank): 题目代码(ItemID)、题目内容(Icontent)、分数(Iscore)、选项(Ioption)、正确答案(Ianswer)、知识点代码(PointID)(froeign). 知识点(KonwledgePoint): 知识点代码(PointID)、知识点内容(Pcontent)、知识点学科(Psubject). 试卷(Paper):

实验一ACCESS数据库及表的操作

可编辑可修改 实验一数据库及表的操作 实验类型:验证性实验课时:_6_学时指导教师: _______________ 时间:2013年月日课次:第___________________ 节教学周次:第________ 周 实验分室:_______________ 实验台号:__________ 实验员:_________________ 一、实验目的 1.掌握数据库的创建及其它简单操作 2.熟练掌握数据表建立、数据表维护、数据表的操作 二、实验内容与要求 1.数据库的创建、打开、关闭 2.数据表的创建:建立表结构、设置字段属性、建立表之间关系、数据的输入 3.数据表维护:打开表、关闭表、调整表外观、修改表结构、编辑表内容 4?数据表的操作:查找替换数据、排序记录、筛选记录 三、实验步骤 案例一:创建数据库 1.创建空数据库 要求:建立“教学管理.accdb ”数据库,并将建好的数据库文件保存在“实验一”文件夹中。 操作步骤:

IS 1 丿小? e 叮亍 Micrtilitil ftfdwvi 口 可审业 a 站 j-t 4审时 OffiCfLC WF gm ■ *陆 (2)单击険'I 按钮,在打开的“新建数据库”对话框中,选择数据库的保存位置,在“ 件夹中,单击“确定”按钮,如图 1-2所示。 (3)这时返回到access 启动界面,显示将要创建的数据库的名称和保存位置,如果用户未提供文件 扩展名,access 将自动添加上。 (4 )在右侧窗格下面,单击“创建”命令按钮,如图 1-1所示。 (5)这时开始创建空白数据库,自动创建了一个名称为表 1的数据表,并以数据表视图方式打开这 个表1,如图1-3所示。 J 曰归 图1-1 创建教学管理数据库 (1 )在Access 2010启动窗口中,在中间窗格的上方,单击“空数据库” ,在右侧窗格的文件名文本 框中,给出一个默认的文件名“” 。把它修改为“教学管理”如图 1-1所示。 实验一”文

实验6 数据库的更新实验

实验6 数据库的更新实验 1.实验目的 本实验的目的是要求学生熟练掌握使用SQL 和通过SQL Server企业管理器向数据库输入数据、修改数据和删除数据的操作。 2.实验时数2学时 [相关知识] SQL Server提供了很多方法更新表中数据。以插入记录为例,可以使用INSERT语句、V ALUES子句将特定值集合插入一行;可以使用数据库接口API(ADO、OLE DB、ODBC和DB-Library)中的函数进行数据插入等。本实验主要掌握INSERT、UPDATE 和DELETE语句的基本用法。 ●插入操作,其语句的一般格式为 INSERT INTO table_or_view [(colum_list)] V ALUES (date_values); 此语句是使date_values作为一行数据记录插入已命名的表或视图table_or_view中。 Column_list是由逗号分隔的table_or_view的列名列表,用来指定为其提供数据的列。 如果没有指定column_list,表或视图中的所有列都将接收数据。 如果column_list没有为表或视图中的所有列命名,将在列表中没有命名的任何列中插入一个NULL值(或者在默认情况下为这些列定义的默认值)。在列的列表中没有指定的所有列都必须允许NULL值或者指定的默认值。否则SQL Server将返回一个错误。 ●修改操作语句的一般格式为 UPDATE 表名 SET <列名>=<表达式>[,<列名>=<表达式>]…… [where <条件>]; 其功能是修改指定表中满足WHERE子句条件的元组。其中SET子句用于指定修改方法,即用<表达式>的值取代相应的属性列值。如果省略WHERE子句,则表示要修改表中的所有元组。 ●删除语句的一般格式为 DELETE FROM <表名> [WHERE <条件>]; 其功能是从指定表中删除满足WHERE子句条件的所有元组。如果省略WHERE子句,则表示要删除表中的所有元组,但表的定义仍在字典中。 3.实验内容 通过企业管理器,在学生选课数据库的学生、课程和选课3个表中各输入10条记录。 要求记录不仅满足数据约束要求,还要有表间关联的记录。 具体完成以下例题。将它们转换为SQL语句表示,在学生选课库中实现其数据更新操作。 例1 将一新学生记录(学号:95050;姓名:陈冬;性别:男;年龄:18;所在系:计算机科学系)插入学生表中。

实验3:数据库安全性

实验3:数据库安全性 第1个实验.安全性定义——第5章实验八 使用订单数据库完成下面的实验内容: (1) 分别创建登录账号user01、user02,其密码皆为p888888,并设置为订单数据库OrderDB的用户。 sp_addlogin'user01','p888888','orderdb' sp_addlogin'user02','p888888','orderdb' (2) 创建登录账号login03,并加入到OrderDB数据库中,其用户名为user03。 sp_adduser'user03','login03' (3) 将员工表的所有权限授予全部用户。 grant all privileges on customer to public (4) 授予user03用户对Product表的查询权限,对Employee表的编号、名称的查询和更新权限。 grant select on product to login03 grant select(employeeno,employeename),update(employeeno,employeename)on employee to login03 (5) 创建角色r3、r4,将订单明细表所有列的SELECT权限、UNIT_PRICE列的UPDA TE 权限授予r3。 sp_addrole'r3' sp_addrole'r4' grant select,update(price)on orderdetail to r3 (6) 收回全部用户对员工表的所有权限。 revoke all on employee from public (7) 将user01、user02两个用户赋予r3角色。 sp_addrolemember user01,r3 sp_addrolemember user02,r3 (8) 收回user02对订单明细表所有列的SELECT权限。 sp_addrole user02 revoke select on orderdetail from user02 (9) 在当前数据库中删除角色r4。 sp_droprole r4 (10) 授予user01建表和建视图的权限,user01用户分别建立一张表和一个视图(表和视图自定),然后将该表和视图的查询权限授予user02和user03。 由于数据库中存在user01而user01的密码未知user01用user04 代替 grant create view to user04

实验三 数据库设计

实验三数据库设计 一、实验目的: (1)巩固和加深对数据库原理基本知识的理解,提高综合运用课程知识的能力。 (2)掌握数据库应用系统设计的基本方法和步骤,培养进行数据库设计的能力。 二、实验步骤 数据库设计: (1)需求分析 (2)概念结构设计: 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型E-R模型: 定义实体,属性,确定联系类型:如: (3)逻辑结构设计: 将概念结构转换为某个DBMS所支持的数据模型,是数据库基本模型,主要用来 定义数据库结构的一些数据结构如表,约束。 1.关系模型: 将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转换为关系模式。 一个实体型转换为一个关系模式。 ?关系的属性:实体型的属性 ?关系的码:实体型的码 实体型间的联系有以下不同情况: 1.一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模 式合并。 ?转换为一个独立的关系模式 ?关系的属性:与该联系相连的各实体的码以及联系本身的属性 ?关系的候选码:每个实体的码均是该关系的候选码 ?与某一端实体对应的关系模式合并 ?合并后关系的属性:加入对应关系的码和联系本身的属性 ?合并后关系的码:不变

2.一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合 并。 ?转换为一个独立的关系模式 ?关系的属性:与该联系相连的各实体的码以及联系本身的属性 ?关系的码:n端实体的码 ?与n端对应的关系模式合并 ?合并后关系的属性:在n端关系中加入1端关系的码和联系本身的 属性 ?合并后关系的码:不变 3. 一个m:n联系转换为一个关系模式。 ?关系的属性:与该联系相连的各实体的码以及联系本身的属性 ?关系的码:两端实体的码 2.设计用户子模式: 定义用户外模式时应该注重考虑用户的习惯与方便 包括三个方面: (1) 使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的View ,以满足系统对安全性的要求。 (3) 简化用户对系统的使用 (4)物理结构设计: 为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法),如索引、聚簇的定义 (5)数据库实施: 运用DBMS提供的数据库语言(如SQL)及宿主语言,根据逻辑设计和物理设计的 结果,建立数据库 (6)数据库运行与维护 三、实验内容:图书借阅管理数据库的设计 1.本数据库简化的需求情况如下: (1)所有借阅人都可以随时查询可借阅图书的情况,如图书编号,图书名称,出版日期,图书出版社,图书存放位置,图书数量等,以便于借阅。 (2)借阅人查询图书情况后可以借阅所需图书,一次可以借阅多本图书,每本图书一次只借阅一本,若有图书超期,需缴纳罚金才能进行借阅。 (3)图书室需要办理借阅证方可借阅图书,需要记录如下信息:借阅人姓名,所在单位,借阅图书的上限数(不同级别的借阅人,借阅图书上限数不同),图书室为每一位借阅人提供唯一的图书借阅证编号。 (4)每位借阅人一次可以借阅多本图书,但不能超过其借阅上限数,借阅图书期限为两个月。超过期限需要缴纳罚金后(每天二分×超期天数)方可借阅。 (5)借阅图书时需登记相应借书日期及还书日期。 (6)图书室同时提供出版社(出版社名称,邮编,地址,电话,E-mail)及作者(作者姓名,性别,出生日期,籍贯,备注)相关信息便于借阅人查询。一本书籍只能在一个出版社出版,由于图书可以再次出版,所以每次出版的图书都有不同的出版日期。 (7)借阅人可以查看所有信息,却不能更新所有信息。 (8)图书借阅管理员可以查看及更新借阅信息,不能进行其他访问操作。

2-实验二MySQL数据库操作实验

实验二MySQL数据库操作实验 实验目的: 1、掌握MySQL数据库的安装方法 2、掌握MySQL数据库的使用 3、熟悉数据库管理工具的使用 实验要求: 1、利用MySQL命令创建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 2、利用Navicat for MySQL建数据库和相应的数据库表,并能向数据库表中插入数据记录和相应的数据库操作。 3、保存和导入数据库 4、编程查询显示数据库表中的所有记录,可以选择以下添加的任意一个数据库表的记录。 实验内容: 1、安装MySQL数据库 安装MySQL可以参照文档“MySQL 5 安装.doc”,安装MySQL并进行配置,安装成功后,即可操作管理数据库。 方法一: 从开始菜单?MySQL?MySQL Server5.0?MySQL Command Line Client,打开控制台界面,提示输入密码,密码输入成功后,登录MySQL数据库,如下图2.1所示。

图2.1 登录MySQL 服务器 方法二:将MySQL的安装路径下的bin目录添加到环境变量path中,打开控制台命令,输入mysql –uroot –p,在提示符下输入密码,登录MySQL 服务器,如下图2.2所示。 图2.2 登录MySQL服务器 2、安装Navicat for MySQL Navicat for MySQL 是一款强大的MySQL数据库管理和开发工具,Navicat 使用很好的GUI,可以使用户采用一种安全和更容易的方式创建、组织、存取和共享信息。 安装Navicat_for_MySQL_10.1.7,安装向导启动界面如下图2.3所示。

数据库的安全性实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验:数据库的安全性实验 课程:数据库原理及应用B 班级:网络1203 学号: 学生姓名: 任课教师:孟彩霞

一、实验目的 (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法(2)理解登录帐号的概念,掌握混合认证模式下登录帐号的建立与取消方法 (3)掌握混合认证模式下数据库用户的建立与取消方法 (4)掌握数据库用户权限的设置方法 (5)理解角色的概念,掌握管理角色技术 二、实验内容 (1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 (2)创建、管理数据库服务器的登录账号。 (3)创建、管理数据库用户。 (4)管理用户权限。 (5)创建、管理数据库角色。 三、实验环境 Windows7 SQL SERVER 2012 四、实验前准备 课本 上机使用代码 五、实验步骤 1.在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 2.创建、管理数据库服务器的登录账号。用T-SQL语句创建、查看、删除登录账号。 创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。 EXEC sp_addlogin ‘student’,’111’,’JWGL’查看登录账号EXEC sp_helplogins 删除登录账号为EXEC sp_droplogins ‘student’ 3.创建、管理数据库用户。 用T-SQL语句创建、查看、删除数据库用户。 为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret,相应的程序代码为: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’查看数据库用户为EXEC sp_helpuser 删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’ 4.管理用户权限。 使用T-SQL语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。企业管理器: (1)允许用户李明对Orders表进行插入、删除操作。 GRANT INSERT ,DELETE ON Orders TO ‘李明’

实验二 数据库操作

实验二SQL Server 2005 数据库的创建修改与管理 一、实验目的与要求 1.实验目的: 掌握使用SSMS创建、修改、删除、压缩数据库的方法。 2.实验要求: 了解SQL Server 2005 数据库的逻辑结构和物理结构及其结构特点,掌握使用SSMS创建、 修改、删除,压缩数据库的方法,明确能够创建数据库的用户必须是系统管理员,或是被授 权使用CREATE DA TABASE语句的用户,创建数据库必须要确定数据库名、所有者(即创建 数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长的方式)和存储数据 的文件。 二、实验内容 1、创建数据库 用ssms:右击数据库/ 新建数据库或选定数据库→单击操作菜单→新建数据库 例:创建一个数据库uvw 命令方式创建:例:创建一个数据库aaa,其余默认,查看aaa信息 create database aaa exec sp_helpdb aaa 使用create database语句创建: create database 库名 on primary ( name=’数据库名’,filename=’数据库文件全称’,size=大小,maxsize=最大尺 寸,filegrowth=增长率) log on (name=日志名,filename=’日志文件全名称’, size=大小,maxsize=最大尺 寸,filegrowth=增长率) 例:创建一个名为dan的学生库,主数据库文件dan_data.mdf,初始大小4mb,事务日志文件 dan_log.ldf,初始容量为4mb,文件存于C盘根目录,分别用菜单与命令方式实现。 例:菜单方式创建(T-SQL语言选作):创建一个gz数据库,该数据库的主文件逻辑名称为gz_data,物理文件名为gz.mdf,初始大小为5mb,最大尺寸为3mb,增长速度为10%;数据库的日志文件逻辑名称为gz_log,物理文件名为gz.ldf,初始大小为3mb,最大尺寸为5mb,增长速度为2MB,文件存放在d:\。 2、修改数据库 例:将数据库dan的数据文件和日志文件分别扩展2个文件 例:修改数据文件dan_data1的空间大小为5mb

数据库更新操作命令实验

实验六更新操作命令 实验目的:掌握第三代高级语言(如C语言)中嵌入式SQL数据库数据操作方法,能 清晰地领略到SQL命令在第三代高级语言中操作数据库数据的方式和方法,这种方式和方法在今后各种数据应用系统开发中将被广泛的采用。 掌握嵌入了SQL语句的C语言程序的上机过程包括:编辑、预编译、连接、修改、调试与运行等内容。 实验内容: 步骤: 将VC98和esqlc两文件放入C盘根目录 启动“MS-DOS”窗口,执行如下命令,使当前盘为C,当前目录为esqlc C: 设置系统环境变量值,执行如下批处理命令: Setenv 执行如下批处理命令:run main 输入程序名 MAIN 回车 连接到数据库 创建教师表 修改,添加 修改:

添加: 代码: int create_teacher_table()

{ char yn[2]; EXEC SQL BEGIN DECLARE SECTION; char tname[21]="xxxxxxxxxxx"; EXEC SQL END DECLARE SECTION; EXEC SQL SELECT name into :tname FROM sysobjects WHERE (xtype = 'U' and name='student'); if (SQLCODE == 0||strcmp(tname,"teacher")==0) { printf("The teacher table already exists,Do you want to delete it?\n",SQLCODE); printf("Delete the table?(y--yes,n--no):"); scanf("%s",&yn); if (yn[0]=='y' ||yn[0]=='Y'){ EXEC SQL drop table teacher; if (SQLCODE == 0) { printf("Drop table teacher successfully!%d\n\n",SQLCODE); } else { printf("ERROR: drop table teacher %d\n\n",SQLCODE); } } else return -1; } EXEC SQL CREATE TABLE teacher ( sno char(5) NOT null primary key, sname char(6) null , ssex char(2) null , sage int null , sdept char(2) null) ; if (SQLCODE == 0) { printf("Success to create table teacher!%d\n\n",SQLCODE); } else { printf("ERROR: create table teacher %d\n",SQLCODE); } EXEC SQL begin transaction insert into teacher values("T9501", "李斌", "男",26, "CS") insert into teacher values("T9502", "赵霞", "女",30, "IS") insert into teacher values("T9503", "周淘", "男",27, "CS")

数据库系统原理课程基本实验设置

目录 每个实验包括: 实验内容 实验要求 实验环境(可选) 实验背景知识(可选) 实验步骤及结果分析 实验总结

第一章概述 数据库课程的学习需要理论和实践的紧密结合,数据库实验是数据库学习的重要的环节。我们将针对数据库学习的实验环节进行实验设置和指导,包括数据库实验需要的知识、环境和内容的设置。 数据库课程的目标是: 理解和掌握数据库的理论知识。学生理解数据库系统的基本概念,掌握数据库系统的基本理论,包括数据库的特点、结构、关系数据模型、数据存储、数据查询及优化、关系数据库设计、事务管理等内容。 了解和熟悉数据库的使用和基本操作,掌握数据访问方法。在学生掌握基本的数据库概念和理论的基础上,培养学生的实践能力,学生能掌握基本的数据库的操作。 全面理解数据库系统,能进行数据库的设计,最终能完成一个完整的数据库应用系统的设计和实现。 数据库实验是为上面的目标服务,其内容的设置要和数据库的理论学习结合起来。根据课程进展和学生掌握的数据库系统知识的提高,数据库的实验分为两个大的部分。一个是和课程紧密相关的,和课程同步的实验,一是在数据库设计理论结束或在课程理论教学完成后进行的数据库系统的设计实验。 这里的实验指导将是针对和数据库的理论学习同步的课程实验。 课程实验目的:通过实验加深学生对数据库相关基本理论和概念的认识和理解,通过对SQL SERVER的操作和使用,了解一种具体的数据库管理系统,熟悉数据库的操作,提高学生数据库实践能力。 课程实验环境: 在实验中,我们选择Kingbase数据库作为基本的实验环境,操作系统可以是Windows2000/XP, 在课程实验中需要用到KingBase的管理工具企业管理器,并用ISQL语言完成实验操作。 实验方式和要求: 课程实验要求每一个学生独立完成; 学生需要理解每一次实验内容,先掌握和了解相关的理论知识,然后制定实验步骤,完成实验内容; 课程实验虽然分次完成,但其在内容上是连贯的,前一次实验的数据可能为后面的实验所用,因此每一次实验结果需要保留; 实验完后,要完成实验报告,写清楚实验内容、实验步骤和实验结果。 实验内容设置: 课程基本实验根据理论学习的内容,包括如下8组实验: 实验一数据库安装、数据库创建与维护实验; 实验二数据库表/视图的创建与维护实验; 实验三数据查询实验; 实验四数据库接口实验; 实验五数据库完整性与安全性实验; 实验六数据查询分析实验; 实验七数据库事务的创建与运行实验; 实验八数据库的备份与恢复实验;

实验四 小型数据库规划设计

实验四小型数据库规划设计 一、实验目的 熟悉数据库的设计的基本方法和步骤,明白数据库设计各阶段的任务,加深对数据 库系统概念和特点的理解。 二、实验内容和要求 根据你熟悉的实际情况,选一个小型的数据库应用项目,进行系统分析和数据库设计。 三、实验主要仪器设备和材料 1.计算机及操作系统:PC机,Windows 2000/xp; 2.数据库管理系统:SQL server 2000/2005; 四、实验方法、步骤及结构测试 1、写出简要的需求分析报告; 本系统是针对高等院校的学生学籍管理,因此学籍管理系统的用户包括系统管理员、教师和学生。主要涉及系部信息、班级信息、任课教师信息、学生信息、课程信息以及选课记录和成绩等多种数据信息。实现的具体功能如下: 基本信息管理——系统管理员负责对各种基本信息的录入、修改、删除等操作。 学生成绩管理——系统管理员负责对学生成绩的录入、修改、删除等操作,学生 可以查询各科成绩。 信息查询统计——学生可以查询基本信息和各科的考试成绩,老师可以查询基本 信息和授课信息,系统管理员负责把老师提交的学生成绩进行管理,计算总成绩和平均成绩,统计不及格学生信息和获得奖学金学生的信息,最后再输出所有的信息。 系统用户管理——系统管理员负责用不同的权限来限制不同用户对系统的使用。 以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。 2、进行简要的系统功能设计; .1 系信息管理。院系信息管理包括院系信息数据的录入、修改与删 除等功能。 .2 级信息管理。班级信息管理包括班级信息的录入、修改与删除等 功能。 .3 师信息管理。教师信息管理包括任课教师信息的录入、修改与删 除等功能。 .4 生信息管理。学生信息管理包括学生信息的录入、修改与删除等 功能。 5 程信息管理。课程信息管理包括课程信息的录入、修改与删除等 功能。 .6 籍变更信息管理。学籍变更信息管理包括学籍变更信息的录入、修改与删除 等功能。 .7 生奖惩信息管理。学生奖惩信息管理包括学生奖惩信息的录入、修改与删除 等功能。

相关主题