• 管理员、运营可以在平台后台管理系统管理商品、订单、会员等。 客服可以在后台管理系统处理用户的询问以及投诉。 不过,暂时可能技术还不够硬…… 二、需求分析 2.1 数据库设计目的 设计一个网购商城的...

    一、 概述
    本网上商城是一个综合性的B2C平台,可以在商城浏览商品、下订单、以及参加各种活动
    管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。
    客服可以在后台管理系统中处理用户的询问以及投诉。
    不过,暂时可能技术还不够硬……
    二、需求分析
    2.1 数据库设计目的
    设计一个网购商城的数据库,以实现网购商城网站系统

    2.12数据库选择
    系统采用MySQL作为数据库
    2.13数据库编码
    数据库采用UTF-8编码格式

    2.2需要完成的功能

    功能描述:

    1. 后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。
    2. 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。
    3. 会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。
    4. 订单系统:提供下单、查询订单、修改订单状态、定时处理订单。
    5. 搜索系统:提供商品的搜索功能。
    6. 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息。

    2.3数据表设计

    2.30 E-R图的模型设计
    (1)实体集
    用户 商品 商品类目 订单
    (2)实体间联系
    用户与商品多对多关系
    商品与商品类目一对多关系(分类)
    用户与购物车一对一关系(用户只能拥有一购物车)
    用户与订单细节一对多关系
    购物车与商品一对多关系(一购物车可以存放多个商品)
    购物车与订单细节一对多关系

    (3)E-R图
    实体间联系E-R图
    这里写图片描述

    2.31商品表:

    CREATE TABLE `tb_item` (
      `id` bigint(20) NOT NULL COMMENT '商品id,同时也是商品编号',
      `title` varchar(100) NOT NULL COMMENT '商品标题',
      `sell_point` varchar(500) DEFAULT NULL COMMENT '商品卖点',
      `price` bigint(20) NOT NULL COMMENT '商品价格,单位为:分',
      `num` int(10) NOT NULL COMMENT '库存数量',
      `barcode` varchar(30) DEFAULT NULL COMMENT '商品条形码',
      `image` varchar(500) DEFAULT NULL COMMENT '商品图片',
      `cid` bigint(10) NOT NULL COMMENT '所属类目,叶子类目',
      `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '商品状态,1-正常,2-下架,3-删除',
      `created` datetime NOT NULL COMMENT '创建时间',
      `updated` datetime NOT NULL COMMENT '更新时间',
      PRIMARY KEY (`id`),
      KEY `cid` (`cid`),
      KEY `status` (`status`),
      KEY `updated` (`updated`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';
    

    2.32商品描述表:

    CREATE TABLE `tb_item_desc` (
      `item_id` bigint(20) NOT NULL COMMENT '商品ID',
      `item_desc` text COMMENT '商品描述',
      `created` datetime DEFAULT NULL COMMENT '创建时间',
      `updated` datetime DEFAULT NULL COMMENT '更新时间',
      PRIMARY KEY (`item_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品描述表';
    

    2.33商品类目表:

    CREATE TABLE `tb_item_cat` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
      `parent_id` bigint(20) DEFAULT NULL COMMENT '父类目ID=0时,代表的是一级的类目',
      `name` varchar(50) DEFAULT NULL COMMENT '类目名称',
      `status` int(1) DEFAULT '1' COMMENT '状态。可选值:1(正常),2(删除)',
      `sort_order` int(4) DEFAULT NULL COMMENT '排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数',
      `is_parent` tinyint(1) DEFAULT '1' COMMENT '该类目是否为父类目,1为true,0为false',
      `created` datetime DEFAULT NULL COMMENT '创建时间',
      `updated` datetime DEFAULT NULL COMMENT '创建时间',
      PRIMARY KEY (`id`),
      KEY `parent_id` (`parent_id`,`status`) USING BTREE,
      KEY `sort_order` (`sort_order`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1183 DEFAULT CHARSET=utf8 COMMENT='商品类目';
    
    

    2.34用户表:

    CREATE TABLE `tb_user` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `username` varchar(50) NOT NULL COMMENT '用户名',
      `password` varchar(32) NOT NULL COMMENT '密码,加密存储',
      `phone` varchar(20) DEFAULT NULL COMMENT '注册手机号',
      `email` varchar(50) DEFAULT NULL COMMENT '注册邮箱',
      `created` datetime NOT NULL,
      `updated` datetime NOT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `username` (`username`) USING BTREE,
      UNIQUE KEY `phone` (`phone`) USING BTREE,
      UNIQUE KEY `email` (`email`) USING BTREE
    ) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8 COMMENT='用户表';
    

    2.35内容表:

    CREATE TABLE `tb_content` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `category_id` bigint(20) NOT NULL COMMENT '内容类目ID',
      `title` varchar(200) DEFAULT NULL COMMENT '内容标题',
      `sub_title` varchar(100) DEFAULT NULL COMMENT '子标题',
      `title_desc` varchar(500) DEFAULT NULL COMMENT '标题描述',
      `url` varchar(500) DEFAULT NULL COMMENT '链接',
      `pic` varchar(300) DEFAULT NULL COMMENT '图片绝对路径',
      `pic2` varchar(300) DEFAULT NULL COMMENT '图片2',
      `content` text COMMENT '内容',
      `created` datetime DEFAULT NULL,
      `updated` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `category_id` (`category_id`),
      KEY `updated` (`updated`)
    ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8;
    

    2.36内容分类表:

    CREATE TABLE `tb_content_category` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '类目ID',
      `parent_id` bigint(20) DEFAULT NULL COMMENT '父类目ID=0时,代表的是一级的类目',
      `name` varchar(50) DEFAULT NULL COMMENT '分类名称',
      `status` int(1) DEFAULT '1' COMMENT '状态。可选值:1(正常),2(删除)',
      `sort_order` int(4) DEFAULT NULL COMMENT '排列序号,表示同级类目的展现次序,如数值相等则按名称次序排列。取值范围:大于零的整数',
      `is_parent` tinyint(1) DEFAULT '1' COMMENT '该类目是否为父类目,1为true,0为false',
      `created` datetime DEFAULT NULL COMMENT '创建时间',
      `updated` datetime DEFAULT NULL COMMENT '创建时间',
      PRIMARY KEY (`id`),
      KEY `parent_id` (`parent_id`,`status`) USING BTREE,
      KEY `sort_order` (`sort_order`)
    ) ENGINE=InnoDB AUTO_INCREMENT=98 DEFAULT CHARSET=utf8 COMMENT='内容分类';
    

    2.37订单表:

    CREATE TABLE `tb_order` (
      `order_id` varchar(50) COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT '订单id',
      `payment` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '实付金额。精确到2位小数;单位:元。如:200.07,表示:200元7分',
      `payment_type` int(2) DEFAULT NULL COMMENT '支付类型,1、在线支付,2、货到付款',
      `post_fee` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '邮费。精确到2位小数;单位:元。如:200.07,表示:200元7分',
      `status` int(10) DEFAULT NULL COMMENT '状态:1、未付款,2、已付款,3、未发货,4、已发货,5、交易成功,6、交易关闭',
      `create_time` datetime DEFAULT NULL COMMENT '订单创建时间',
      `update_time` datetime DEFAULT NULL COMMENT '订单更新时间',
      `payment_time` datetime DEFAULT NULL COMMENT '付款时间',
      `consign_time` datetime DEFAULT NULL COMMENT '发货时间',
      `end_time` datetime DEFAULT NULL COMMENT '交易完成时间',
      `close_time` datetime DEFAULT NULL COMMENT '交易关闭时间',
      `shipping_name` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '物流名称',
      `shipping_code` varchar(20) COLLATE utf8_bin DEFAULT NULL COMMENT '物流单号',
      `user_id` bigint(20) DEFAULT NULL COMMENT '用户id',
      `buyer_message` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '买家留言',
      `buyer_nick` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '买家昵称',
      `buyer_rate` int(2) DEFAULT NULL COMMENT '买家是否已经评价',
      PRIMARY KEY (`order_id`),
      KEY `create_time` (`create_time`),
      KEY `buyer_nick` (`buyer_nick`),
      KEY `status` (`status`),
      KEY `payment_type` (`payment_type`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    

    2.38订单项表:

    CREATE TABLE `tb_order_item` (
      `id` varchar(20) COLLATE utf8_bin NOT NULL,
      `item_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '商品id',
      `order_id` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '订单id',
      `num` int(10) DEFAULT NULL COMMENT '商品购买数量',
      `title` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '商品标题',
      `price` bigint(50) DEFAULT NULL COMMENT '商品单价',
      `total_fee` bigint(50) DEFAULT NULL COMMENT '商品总金额',
      `pic_path` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT '商品图片地址',
      PRIMARY KEY (`id`),
      KEY `item_id` (`item_id`),
      KEY `order_id` (`order_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
    
    展开全文
  • 实验课程名称数据库系统概论 实验项目名称:数据库的创建和管理 实验类型:综合性 指导教师:   实验日期: 年 月 日 学生姓名   学 号   班 级 ...

     

    广东东软学院

    学生实验报告

     

    实验课程名称:数据库系统概论

    实验项目名称:数据库的创建和管理

    实验类型:综合性

    指导教师:

     

    实验日期:  年  月  日

    学生姓名

     

    学   号

     

    班  级

     

    专业名称

     

    实验组

    其他成员

     

    实验地点

     

    实验成绩

    (教师签名)

     

     

     

     

     

     

    一、实验目的与要求

    1.熟悉SQL Sever2008的图形界面工作环境;

    2.理解几个主要系统数据库;

    3.掌握分别利用SQL Sever Management Studio和Transact-SQL语句创建数据库的方法;

    4.理解数据库文件和文件组,掌握文件和文件组的两种增加、删除、修改文件和文件组的方法。

    5.掌握分别用SQL Sever Management Studio和Transact-SQL语句两种方式修改数据库,包括(删除数据库,分离数据库,附加数据库等)

    6.掌握使用SQL Sever Management Studio和T-SQL语言创建表、修改表已经删除表。

    7.掌握创建、删除和修改约束的方法。

    8.了解如何让查看表的定义、数据的依赖关系。

     

    二、实验原理

    1.数据库的组织结构

    1)逻辑存储结构

    SQL Sever数据库由一个表集合组成。这些表包含结构化的数据以及为支持对数据的操作额保证数据的完整性而定义的其他对象,如视图、索引、存储过程、用户定义函数和触发器等,它们够成了数据库的逻辑存储结构,如图1-1所示。

    2)物理存储结构

    数据库的物理存储结构是说明包含数据库对象的数据库文件是如何在磁盘上存储的。创建数据库实际上就是在硬盘上创建数据库文件的过程,数据库文件是存放数据库数据和数据库对象的文件。

    在SQL Sever数据库中存在主要数据文件、次要数据文件和事务日志3种数据库文件。主要数据文件(简称主文件)包含数据库的启动信息并用于存储数据,文件扩展名为.mdf。每个数据库必须且只有一个主文件,该文件存放两种对象,即用户对象和系统对象。用户对象包含表、视图及存储过程等,用于保存用户输入的数据;系统对象有表名、数据库用户帐号、索引地址等维护数据库工作所需要的信息。系统表应该保存在主文件中,而用户数据可移动到次要数据文件中。

    次要数据文件主要存储用户数据,文件的扩展名为.ndf。如果主文件包含了数据库中所有数据,则可以不要次要文件,但如果数据库非常大(如超出了单个windows文件的最大值),就应该有多个次要数据文件来辅助存放用户数据,但不能存放系统对象。使用次要数据文件可以让数据库文件不断得到扩充,并可以通过将不同的文件存放到不同的磁盘空间中实现同时对多个磁盘进行访问,从而提高数据存储的并发性。

    图1-1

    SQL Sever主要通过事务日志文件来实现数据的恢复,文件扩展名为.ldf。数据库必须至少包含一个事务日志文件,每个日志文件仅能被一个数据库所拥有,数据和日志信息不应混在一起。

    3)数据库文件组

    为了方便数据的分配、放置和管理,SQL Sever允许对文件进行分组处理,在同一个组中的文件共同组成一个文件组。例如,可以分别在三个硬盘驱动器上创建三个数据文件Data1.ndf、Data2.ndf和Data3.ndf,并将它们指派到文件组Filegroup中,然后在Filegroup上创建一个表,这样对表中数据的查询将分散到三个磁盘上,从而查询性能得到改善。此外,将维护要求相近的表和索引分配到相同的文件组中,备份时仅备份文件组,而非数据庞大的整个数据库,能提高系统的可维护性。再有,对于不允许修改的表(如历史数据),可以将它们置于文件组中(主文件除外)然后将这些文件组标记为只读,从而起到保护数据的目的。

    文件和文件组的设计遵循如下规则:一个文件或文件组不能由多个数据库使用;一个文件只能是一个文件组的成员;事务日志文件不能属于任何文件组。

    2.数据库的分离和附加

    数据库的分离和附加是一对互逆的操作。分离数据库是指将数据库从SQL Sever实例中删除,即从数据库的逻辑结构中删除,但并不会将其物理文件(数据文件和日志文件)从磁盘上删除,之后,就可以使用这些文件将数据库附加到任何SQL Sever实例,包括分离该数据库的服务器。当需要将数据库物理文件从当前位置移到另一磁盘或存储路径下时,可先分离再附加数据库。通常,附加数据库时会将数据库重置为它分离或复制时的状态。

    在进行数据库分离操作时,要注意以下几点:

    (1)不能对数据库对象进行更新操作和运行任务,用户也不能连接在该数据库上。

    (2)在移动数据库之前,最好为数据库做一个完整的备份。

    (3)确保数据库要移动的目标位置及将来数据增长能有足够的空间。

    三、实验原理

    1.数据库的创建

    包括主要数据文件,逻辑文件名,物理文件名,次要数据文件,日志文件,文件组等。

    2.数据库的管理

    1)修改数据库(扩展、收缩,分离,附加,移动,复制等)

    2)修改数据库属性(添加数据文件或日志文件,添加文件组,删除文件和文件组,修改某个文件属性,重命名文件,重命名数据库等)

     

    四、实验设备与软件环境

    1.Windows XP Professional SP3/Windows7

    2.SQL Server 2008

     

    五、实验步骤

    1.使用SQL Sever Management Studio创建数据库,具体要求如下

    1)数据库名称为Test1。

    2)主要数据文件:逻辑文件名为Test1Data1,物理文件名为Test1Data1.mdf,初始容量为5MB,最大容量为10MB,增量为1MB。

    3)次要数据文件:逻辑文件名为Test1Data2,物理文件名为Test1Data2.ndf, 初始容量为3MB,最大容量为20MB,增量为2MB。

    4)事务日志文件:逻辑文件名为Test1Log1,物理文件名为Test1Log1.ldf,初始容量为1MB,最大容量为5MB,增量为1MB。

     

     

     

     

     

     

     

     

     

    2.使用Transact-SQL语句创建数据库,具体要求如下:

    1)数据库名称为Test2。

    2)  主要数据文件:逻辑文件名为Test2Data1,物理文件名为Test2Data1.mdf,初始容量为5MB,最大容量为10MB,增量为10%。

    3)  次要数据文件:逻辑文件名为Test2Data2,物理文件名为Test2Data2.ndf, 初始容量为3MB,最大容量为20MB,增量为2MB。

    4)  事务日志文件:逻辑文件名为Test2Log1,物理文件名为Test2Log1.ldf,初始容量为1MB,最大容量为5MB,增量为1MB。

     

     

     

     

     

     

     

     

     

    3.使用Transact-SQL语句创建数据库Test3,具体要求如下:

    1)该数据库名称为Test3

    2)包含两个文件组:PRIMARY和Test3_group1

    3)三个数据文件:主文件Test3_data1,Test3_data2放在PRIMARY文件组中,Test_data3放在Test3_group1文件组中。

    4)一个日志文件:Test3_log

    5)各文件的初始容量、最大容量、增量可任意设置。

     

     

     

     

     

     

     

     

    4.使用Transact-SQL语句修改数据库属性,具体要求如下:

    1)向3中建立的Test3数据库增加一个新的文件组,名称为Test3_group2

    2)向文件组Test3_group2中添加文件Test3_data4。

    3)删除文件Test3_data4。

    4)删除刚添加的文件组Test3_group2

    5)修改Test3数据库中主要数据文件Test3_data1的属性,初始容量为2MB,最大容量为20MB,增幅为1MB;修改日志文件的属性,初始容量为2MB,最大容量为50MB,增幅为1MB.

    6)修改Test3数据库的名称为new_Test3。

     

     

     

     

     

     

     

     

     

     

     

     

    5.分别使用dbcc shrinkdatabasedbcc shrinkfile对数据库Test2进行压缩。

     

     

     

     

     

     

     

     

     

     

     

     

    6.分别采用SQL Sever Management StudioT-SQL语言删除数据库Test1.

     

     

     

     

     

     

     

     

     

     

     

     

    7.创建表,并创建相应的约束。

    要求:在学生管理数据库XSGL中创建如下三个表:创建名为Student(学生信息)的表,表中的各列要求如下:

    字段名称

    字段类型

    约束

    说明

    Sno

    Int

    主键

     

    学生学号

    Sname

    Nchar(8)

     

    学生姓名,不能空

    Sex

    Char(2)

     

    性别,默认为男,只能输入男或女

    Birthday

    Datetime

     

    出生日期,不能为空

    Age

    smallint

     

    当前时间-birthday

    Sdept

    Char(20)

     

    系部

    创建名为Course(课程信息)的表,表中的各列要求如下:

    字段名称

    字段类型

    约束

    说明

    Cno

    char(10)

    主键

    课程代号

    Cname

    Varchar(40)

    唯一性

    课程名

    Credit

    smallint

     

    学分,取值0-10之间

    Cteacher

    Char(10)

     

    教师

    创建名为SC(选课成绩)表,表中的各列要求如下:

    字段名称

    字段类型

    约束

    说明

    Sno

    Int

    主键、外键(参考Student中的Sno)

    学号

    Cno

    Char(10)

    主键、外键(参考Cource中的Cno)

    课程号

    Grade

    Smallint

    可以为空

    成绩,0—100之间

    两种方法SQL Sever Management Studio和T-SQL语言创建表、修改表以及删除表。

     

     

     

    8、增加、修改和删除字段,要求:

    1)给Student表中增加一个memo字段,类型为varchar(200)

    2)将memo字段的类型改为nvarchar(250)

    3)删除memo字段。

    4)修改表Cource的名称为CourceInfo

     

     

     

    实验过程与结果(可贴图)

    要求:写出实验的具体流程和实验的结果,需要分点说明,相应的地方需要截图说明。

    1.使用SQL Sever Management Studio创建数据库,具体要求如下

    1)数据库名称为Test1。

    2)主要数据文件:逻辑文件名为Test1Data1,物理文件名为Test1Data1.mdf,初始容量为5MB,最大容量为10MB,增量为1MB。

    3)次要数据文件:逻辑文件名为Test1Data2,物理文件名为Test1Data2.ndf, 初始容量为3MB,最大容量为20MB,增量为2MB。

    4)事务日志文件:逻辑文件名为Test1Log1,物理文件名为Test1Log1.ldf,初始容量为1MB,最大容量为5MB,增量为1MB。

    CREATE DATABASE Test1

    ON PRIMARY (

        NAME = TestData1,

        filename = 'D:\Test1Data1.mdf',

        size = 5,

        filegrowth = 1,

        maxsize = 10

        ),filegroup

        Test1Data2 (

            NAME = Test1Data2,

            filename = 'D:\Test1Data2.ndf',

            size = 3,

            filegrowth = 2,

            maxsize = 20 ) log

                 ON (

                     NAME = Test1Log1,

                     filename = 'D:\Test1Log1.ldf',

                     size = 1,

                     maxsize = 5,

                     filegrowth = 1

                     );

    2.使用Transact-SQL语句创建数据库,具体要求如下:

    1)数据库名称为Test2。

    2)  主要数据文件:逻辑文件名为Test2Data1,物理文件名为Test2Data1.mdf,初始容量为5MB,最大容量为10MB,增量为10%。

    3)  次要数据文件:逻辑文件名为Test2Data2,物理文件名为Test2Data2.ndf, 初始容量为3MB,最大容量为20MB,增量为2MB。

    4)  事务日志文件:逻辑文件名为Test2Log1,物理文件名为Test2Log1.ldf,初始容量为1MB,最大容量为5MB,增量为1MB。

    create database Test2

        on primary (

        name = TestData1,

        filename = 'D:\Test2Data1.mdf',

        size = 5,

        maxsize = 10,

        filegrowth = 10% ), filegroup

        Test2Data2 (

            name = Test2Data2,

            filename = 'D:\Test2Data2.ndf',

            size = 3,

            maxsize = 20,

            filegrowth = 2) log on (

                 name = Test2Log1,

                 filename = 'D:\Test2Log1.ldf',

                 size = 1,

                 maxsize = 5,

             filegrowth = 1);

    3.使用Transact-SQL语句创建数据库Test3,具体要求如下:

    1)该数据库名称为Test3

    2)包含两个文件组:PRIMARY和Test3_group1

    3)三个数据文件:主文件Test3_data1,Test3_data2放在PRIMARY文件组中,Test_data3放在Test3_group1文件组中。

    4)一个日志文件:Test3_log

    5)各文件的初始容量、最大容量、增量可任意设置。

    create database Test3

        on primary (

        name = Test3_Data1,

        filename = 'D:\Test3Data1.mdf',

        size = 1,

        filegrowth = 1,

        maxsize=unlimited),

             (

                 name = Test3_Data2,

                 size = 1,

                 filename = 'D:\Test3Data2.ndf',

                 maxsize = unlimited,

                 filegrowth = 2),

            filegroup Test3_group1(

                 name = Test_data3,

                 size = 5,

                 filename = 'D:\Test3Data3.ndf',

                 maxsize = unlimited,

                 filegrowth = 3

                 ) log on (

                 name = Test3_log,

                 size = 1,

                 filename = 'D:\Test3Log.lfg',

                 filegrowth = 1,

             maxsize = 5);

    4.使用Transact-SQL语句修改数据库属性,具体要求如下:

    1)向3中建立的Test3数据库增加一个新的文件组,名称为Test3_group2

    2)向文件组Test3_group2中添加文件Test3_data4。

    3)删除文件Test3_data4。

    4)删除刚添加的文件组Test3_group2

     

     

     

     

     

     

     

     

     

     

    5)修改Test3数据库中主要数据文件Test3_data1的属性,初始容量为2MB,最大容量为20MB,增幅为1MB;修改日志文件的属性,初始容量为2MB,最大容量为50MB,增幅为1MB.

     

     

    6)修改Test3数据库的名称为new_Test3。

     

     

     

     

    5.分别使用dbcc shrinkdatabasedbcc shrinkfile对数据库Test2进行压缩。

    6.分别采用SQL Sever Management StudioT-SQL语言删除数据库Test1.

     

     

     

     

    创建表,并创建相应的约束。在学生管理数据库XSGL中创建如下三个表:创建名为Student(学生信息)的表,创建名为Course(课程信息)的表, 创建名为SC(选课成绩)表,实现截图如下:

    create table Cource(

        Cno Char(10) primary key,

        Cname Varchar(40) unique,

        Credit smallint check(Credit >= 0 and Credit <=10),

        Cteacher Char(10)

        );

    create table SC(

        Sno int foreign key references Student(Sno),

        Cno Char(10) foreign key references Cource(Cno),

        Grade Smallint check(Grade>=0 and Grade<=100)

    );

     

    create table Student(

        Sno int primary key, --学生学号

        Sname Nchar(8) not null,--学生姓名

        Sex Char(2) default '男' check(Sex = '男' or Sex = '女'),

        Birthday DateTime not null,--出生日期

        Age smallint,--当前时间-birthday

        Sdept Char(10)--教师

    );

     

     

    5. 增加、修改和删除字段.

    1)给Student表中增加一个memo字段,类型为varchar(200)

    2)将memo字段的类型改为nvarchar(250)

    3)删除memo字段。

    4)修改表Cource的名称为CourceInfo

    5)实现截图如下:

     

     

    --1)给Student表中增加一个memo字段,类型为varchar(200)

    alter table Student add memo varchar(200);

    --2)将memo字段的类型改为nvarchar(250)

    alter table Student alter column memo nvarchar(200);

    --3)删除memo字段。

    alter table Student drop column memo;

    --4)修改表Cource的名称为CourceInfo

    EXEC sp_rename 'Cource','CourceInfo';

       

    操作异常问题与解决方案

     

    1. 在创建文件组时无法创建,后来百度解决.
    2. 添加文件指向指定文件组和日志文件总是报错,直到后来百度看到过类似实列解决此问题.
    3. 压缩数据库不懂的shrinkdatabase,百度解决此问题

     

     

    实验总结

    在这次实验数据库的创建和管理中,我更加深刻理解SQL SERVER的使用,对数据库创建,删除,修改约束的方法,比如给Student的Sno添加外键的方法:Sno int foreign key references Student(Sno), 创建文件组的方法: Alter database Text3 add filegroup[PRIMARY].本次实验主要了解到了俩点:1.数据库的组织结构(包括数据库的组织结构分为逻辑存储结构,物理存储结构以及数据库文件组)2.数据库的分离和附加,数据库的分离和附加是一对互逆的操作,在进行数据库的分离时要注意三点,(1).不能对数据库对象进行更新操作和运行任务,用户也不能连接在该数据库上。(2).在移动数据库之前,最好为数据库做一个完整的备份。(3).确保数据库要移动的目标位置及将来数据增长能有足够的空间。

    在这次实验遇到最大的问题就是在创建数据库Text3里,在这过程中创建的文件组以及向指定文件组里添加指定文件,添加文件组可以实现,但是添加指定文件不懂语句怎么添加,网上找了一些实列但是添加过程也总是不理想,最后分类一个个来添加实现就可以了.最后实现三个表,表与表之间的关系,这个可以解决,只要理清那个表是主关键表,添加外键直接foreign key references, 在这次实验我更加了解到数据库的知识点以及进程相关知识,给我带来了丰富的体验,同时也看到了自己的不足之处,只有更加了解自己方可取胜!

     

     

     

    其他要求:

    1. 格式:实验报告正文部分的小标题为宋体小四加粗;正文为宋体小四,不用加粗,行距为20磅。
    2. 所提交的报告要删除本模板中红色字部分的说明。
    /*1.使用SQL Sever Management Studio创建数据库,具体要求如下:
    1)数据库名称为Test1。
    2)主要数据文件:逻辑文件名为Test1Data1,物理文件名为Test1Data1.mdf,初始容量为5MB,最大容量为10MB,增量为1MB。
    3)次要数据文件:逻辑文件名为Test1Data2,物理文件名为Test1Data2.ndf, 初始容量为3MB,最大容量为20MB,增量为2MB。
    4)事务日志文件:逻辑文件名为Test1Log1,物理文件名为Test1Log1.ldf,初始容量为1MB,最大容量为5MB,增量为1MB。
    */
    CREATE DATABASE Test1 
    ON PRIMARY ( 
    	NAME = TestData1, 
    	filename = 'D:\Test1Data1.mdf', 
    	size = 5, 
    	filegrowth = 1, 
    	maxsize = 10 
    	),filegroup 
    	Test1Data2 ( 
    		NAME = Test1Data2, 
    		filename = 'D:\Test1Data2.ndf', 
    		size = 3, 
    		filegrowth = 2, 
    		maxsize = 20 ) log 
    			ON ( 
    				NAME = Test1Log1, 
    				filename = 'D:\Test1Log1.ldf', 
    				size = 1, 
    				maxsize = 5, 
    				filegrowth = 1 
    					);
    
    
    /*2.使用Transact-SQL语句创建数据库,具体要求如下:
    1)数据库名称为Test2。
    2)	主要数据文件:逻辑文件名为Test2Data1,物理文件名为Test2Data1.mdf,
    初始容量为5MB,最大容量为10MB,增量为10%。
    3)	次要数据文件:逻辑文件名为Test2Data2,物理文件名为Test2Data2.ndf, 
    初始容量为3MB,最大容量为20MB,增量为2MB。
    4)	事务日志文件:逻辑文件名为Test2Log1,物理文件名为Test2Log1.ldf,
    初始容量为1MB,最大容量为5MB,增量为1MB。
    */
    create database Test2
    	on primary (
    	name = TestData1,
    	filename = 'D:\Test2Data1.mdf',
    	size = 5,
    	maxsize = 10,
    	filegrowth = 10% ), filegroup 
    	Test2Data2 (
    		name = Test2Data2,
    		filename = 'D:\Test2Data2.ndf',
    		size = 3,
    		maxsize = 20,
    		filegrowth = 2) log on (
    			name = Test2Log1,
    			filename = 'D:\Test2Log1.ldf',
    			size = 1,
    			maxsize = 5,
    			filegrowth = 1);
    
    /*3.使用Transact-SQL语句创建数据库Test3,具体要求如下:
    1)该数据库名称为Test3
    2)包含两个文件组:PRIMARY和Test3_group1
    3)三个数据文件:主文件Test3_data1,Test3_data2放在PRIMARY文件组中,Test_data3放在Test3_group1文件组中。
    4)一个日志文件:Test3_log
    5)各文件的初始容量、最大容量、增量可任意设置。
    */
    create database Test3
    	on primary (
    	name = Test3_Data1,
    	filename = 'D:\Test3Data1.mdf',
    	size = 1,
    	filegrowth = 1,
    	maxsize=unlimited),
    		 (
    			name = Test3_Data2,
    			size = 1,
    			filename = 'D:\Test3Data2.ndf',
    			maxsize = unlimited,
    			filegrowth = 2),
    		filegroup Test3_group1(
    			name = Test_data3,
    			size = 5,
    			filename = 'D:\Test3Data3.ndf',
    			maxsize = unlimited,
    			filegrowth = 3
    			) log on (
    			name = Test3_log,
    			size = 1,
    			filename = 'D:\Test3Log.lfg',
    			filegrowth = 1,
    			maxsize = 5);
    
    /*4.使用Transact-SQL语句修改数据库属性,具体要求如下:
    1)向3中建立的Test3数据库增加一个新的文件组,名称为Test3_group2
    2)向文件组Test3_group2中添加文件Test3_data4。
    3)删除文件Test3_data4。
    4)删除刚添加的文件组Test3_group2
    5)修改Test3数据库中主要数据文件Test3_data1的属性,初始容量为2MB,
    最大容量为20MB,增幅为1MB;修改日志文件的属性,初始容量为2MB,
    最大容量为50MB,增幅为1MB.
    6)修改Test3数据库的名称为new_Test3。
    */
    alter database Test3 add filegroup Test3_group2;
    
    alter database Test3 add file(
    	name = Test3_data4,
    	filename = 'D:\Test3_data4.ndf',
    	size = 1,
    	maxsize = unlimited,
    	filegrowth = 1
    	) to filegroup Test3_group2;
    
    alter database Test3 remove file Test3_data4;
    
    alter database Test3 remove filegroup Test3_group2;
    
    alter database Test3 modify file (
    name = Test3_Data1,
    size = 2,
    maxsize = 20,
    filegrowth = 1);
    
    alter database Test3 modify file ( 
    name = Test3_log,
    size = 2,
    maxsize = 50,
    filegrowth = 1);
    
    alter database Test3 modify name = new_Test3; 
    
    /*5.分别使用dbcc shrinkdatabase和dbcc shrinkfile对数据库Test2进行压缩。*/
    
    /*6.分别采用SQL Sever Management Studio和T-SQL语言删除数据库Test1.*/
    drop database Test1;
    
    
    create table Student(
    	Sno int primary key, --学生学号
    	Sname Nchar(8) not null,--学生姓名
    	Sex Char(2) default '男' check(Sex = '男' or Sex = '女'),
    	Birthday DateTime not null,--出生日期
    	Age smallint,--当前时间-birthday
    	Sdept Char(10)--教师
    	);
    create table Cource(
    	Cno Char(10) primary key,
    	Cname Varchar(40) unique,
    	Credit smallint check(Credit >= 0 and Credit <=10),
    	Cteacher Char(10)
    	);
    create table SC(
    	Sno int foreign key references Student(Sno),
    	Cno Char(10) foreign key references Cource(Cno),
    	Grade Smallint check(Grade>=0 and Grade<=100)
    	);
    --1)给Student表中增加一个memo字段,类型为varchar(200)
    alter table Student add memo varchar(200);
    --2)将memo字段的类型改为nvarchar(250)
    alter table Student alter column memo nvarchar(200);
    --3)删除memo字段。
    alter table Student drop column memo;
    --4)修改表Cource的名称为CourceInfo
    EXEC sp_rename 'Cource','CourceInfo';
    
    
     
     
     
    展开全文
  • 湖南科技大学计算机科学与工程学院 《数据库系统》 课 程 设 计 题 目: 教学管理系统 专 业:计算机科学与技术 年 级: 2017级 班 级: 计科三班 ...数据库系统课程设计是为了配合数据库原理及应用开发而...

    二话不说,先怼源码:
    gitHub源码地址

    题 目: 教学管理系统 专 业:计算机科学与技术
    作 者: 马志成
    完成时间:2019年1月3日

    一.实验目的

    数据库系统课程设计是为了配合数据库原理及应用开发而设置的,是计算机科学与技术、 网络工程、信息安全、物联网工程、软件工程等专业集中实践的教学环节,是将关系数据库 理论知识转化为解决实际问题能力的重要环节。数据库系统课程设计目的在于加深对关系数 据库理论知识的理解,通过使用具体的 DBMS,掌握一种实际的数据库管理系统并掌握其 操作技术,熟练掌握使用数据库前端开发工具(如 VB、C++、Java、Delphi、PowerBuilder 等),进一步提高同学们运用数据库技术解决实际问题的能力。

    二.实验平台

    数据库:Mysql
    页面及朱语句:java(),开发工具eclipse。

    三.实验内容

    目前市面上流行的数据库管理系统有:适合大型企业的Oracle,适合中小型企业的SQL SERCER,以及开源的Mysql。考虑到数据库管理系统的易操作性以及实验的实际情况,本次课程设计使用的是开源的Mysql。使用的数据库操作语言是java。将数据库操作SQL语言嵌入java语句中完成数据库各项增删改查等操作。同时用户操作界面也是使用java实现。Java加载MySQL的驱动,实现利用java操作数据库。利用两周的时间完成有关数据库的各项原型设计以及有关数据库的模型设计和实现。同时完成前端界面的编写,数据库与java的连接,数据库的安全性的测试,java操作数据库的测试和改善。在完成了对数据库中数据的基本增删改查的功能之后利用多余的时间完成其他操作,包括模糊查询等。本次课程设计的前端界面的编写可以使用任意的工具。可以使用安卓的AS,也可以使用eclipse的windoubuilder插件等等的各种工具。设计的界面采用菜单或对话框的形式,根据自己所选的课程设计题目给出系统分析,设计出概念模型,以及实现最后的运营以及维护。

    四.实验要求

    经典的桌面数据库应用开发是典型的 C/S 计算模式,即应用数据库前端开发工具编写客 户端程序,通过客户端程序来连接和访问后台数据库。考虑到同学们都学习过 Java,因此, 本次选用 Java 作为前台数据库开发工具(也可以选用 VB、Delphi、C/C++等)。 两周的课程设计要求同学们开发一个小型数据库管理信息系统。所设计的小型管理信息 系统应包含查询、插入、删除、修改、统计、用户权限管理等基本功能,界面采用菜单或对 话框的形式。根据同学们所选的设计课题,给出系统需求分析,设计出系统的概念模型、逻 辑模型,用 SQL 语言实现数据库的建立、应用和维护,最后写出详细的设计说明书。 本次课程设计要求同学们充分认识数据库系统课程设计对培养自己动手能力的重要性, 认真做好设计前的各项准备工作。虚心接受老师的指导,充分发挥自学能力和查找资料的能 力。结合课题,独立思考,努力钻研,勤于实践,勇于创新。独立完成规定的工作任务,不 得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。严格要求自己,按时、按质、按量 完成每天的课程设计任务。

    五.实验步骤

    1.系统需求分析

    1系统功能分析本系统主要有以下功能要求:课程设置,包括:增加、删除、查询和修改课程信息。 课程时间和教室的安排,以及课程清单打印输出。 l学生选课和学生课表的打印输出。 l课程学生名单的打印输出和期末成绩输入。 l成绩查询、报表。
    1.2系统功能模块设计系统各功能模块的关系如图 1 所示。 图 1、教学管理信息系统功能模块图 因为使用这套系统的人员不光是教务管理人员,还包括教师和学生。不同的身份对数据 库的操作权限也不同。为了避免管理的混乱,需要针对不同的角色分别设计客户端应用程序, 对同一个数据库进行合理的修改。页面流程图:
    1.3 与其他系统的关系教学管理信息系统同样是校园信息管理系统的一个有机组成部分。需要从学生信息管理 系统获取学生的个人信息,从教师信息管理系统获取任课教师的相关信息。同时,提供的成 绩单为其他系统提供必要的参考。
    1.4数据流程图教学信息管理系统的数据流程如图

    2.数据库设计

    2.1数据库需求分析根据我们前面的分析,教学信息管理系统需要以下数据项:课程:课程号、课程名称、讲课教师、学分、学时、上课时间、上课地点、简介、 课程状态。 l选课结果:记录编号、选课人、所选课程。成绩单:记录编号、学生、课程、成绩。所需的外部数据支持: l 学生:学号、姓名、班级。 l教师:员工号、姓名、课程院系。
    2.2数据库概念结构设计本系统所需数据的 E-R 模型图:
    2.3数据库逻辑结构设计需要3个基本信息表:教师信息、学生信息、课程信息。其中, 教师信息和学生信息在实际系统中是从其它信息管理系统的数据表中直接读取。学生的选课 信息需要用 1 个表来单独保存。由于每学期期末前都要进行选课,因此选课结束后要将这个 表的内容及时保存到成绩单数据表中。使用本系统的不光是教务处的管理人员和教师,每个 学生都需要登录到选课系统进行课程的选择。因此,需要对不同的登录人员进行密码认证和 权限的限制,防止出现越权行为。用户名、密码和权限单独保存在 1 个数据表中。另外需要 一个课程状态代码表,这 7 个数据表的结构如表 1 到表 7 所示(请设计者完成这 7 个数据表 的逻辑结构)。

    3.各个功能模块的设计与实现

    3.1功能说明本系统需要按照不同的用户分别创建 3 个工程:教师课程管理应用程序、教务课程调度 应用程序和学生选课应用程序。 首先,三个模块的用户的权限是有很大的差异的,教务处的用户的权限大于教师的用户权限,教师的用户权限大于学生的用户权限。所以登录不同的模块对于数据的操作的允许范围是不同的。

    一.教务课程调度应用程序功能说明。
    登录教务处权限的模块,可以对所有数据进行操作,包括学生的各项学习的查询。学生的课程的查询,教授的信息查询,教师设置课程的查询以及教师和学生的学习的的增删改查等等。同时此用户权限拥有对所有数据的掌握。
    
    二.教师课程管理应用程序功能说明。

    教师登录模块主要进行的是对于教师信息的修改查询以及对学生信息的查询和学生成绩的设置与查询。以及开设课程。

    三.学生选课应用程序功能说明。

    学生用户的权限较低,他只有对自己的信息的修改以及查询成绩,查询教师所开设课程和选课的去权利。四.实现了用户数据的导入导出。在实现了基本的增删改查的基础上对于自己完成的教务管理系统,新增加了数据导出为Excel格式和从Excel中读取数据至数据库中的新功能。
    3.2用户界面设计根据权限的不同,用户界面分为三类,登录选项也为三类,各模块的界面视图如图所示:
    1.教务管理系统用户权限界面如图,用户可以在界面内选择相应的群像进行登录。
    2.教务处用户登录界面,选择相应的用户权限之后进入相应的用户的登录界面。其它两个用户权限的登录界面与之类似,以下只展示一个登录界面。输入密码或者账号错误会有相应的提示框。
    3.教务处用户的登录后主操作界面。教务处用户登录后进行相应数据的操作。左侧为一个树目录结构,点击各个子节点可以进行各个表之间的转换。右面为各个子操作界面的展示,在子界面内进行各个数据的查看与操作。
    4.教师权限用户的主界面如图所示,教师可以在主界面完成相应的操作,包括学生信息的查询,成绩的添加修改,课程的设置与修改等。
    5.学生用户的登录主界面,进行查课,选课和成绩查询及个人信息修改等操作。教师登录后查询学生的成绩哥信息等,同时可以查询和修改自己的信息。同时在界面内设置和修改自己要开设的课程。
    6.数据库的建立。
    7.数据以Excel的形式导入导出。连接数据库之后可以实现数据的导入和导出为Excel形式。实现数据的导入导出要在java的驱动文件中加载。建立相应的导入导出数据的类,并进行定义,再链接数据库进行定义,就实现数据的导入导出。 导入导出的连接数据库的部分代码如图所示。其主要能容为建立一个workbook的工作部,在工作簿中完成导入导出的各项操作。
    8.代码目录结构的展示,基本文件的分类为是按照各个页面的分类来进行的,即一个页面为一个java文件,其它的辅助文件和数据库连接文件为一个java文件。
    4.1实验中的错误一、 写界面遇到的错误
    1、表格的表头无法显示 我一开始用的String类型的数组储存的表头,表格也是用的数组,表头无法显示;然后我百度发现,表格要先放入一个容器才能显示表头。我按照例子改用vctor类型储存我的表头,但是我一开始是用的add方法把表格加入容器的,所以表头还是无法显示,通过百度我才知道表头的数组显示方法才能让表头显示,而且容器的布局不能为null。然后表格就正常了2、登陆界面(不管我是否输入了信息,都可以正常地登陆)我一开始是用
    user.equals("")||user==null来判断的,没有去掉字符串前后的空格,所以不管怎么判断字符串其实是有空格的,所以不管怎么都可以成功登陆,二、写数据库的错误1、我的数据库一开始不能输入中文安装的时候没有注意Mysql的语言类型,默认的语言不是中文,所以不能输入中文,把每个表改成了utf8,改了之后虽然在navicat可以输入中文,但是如果在mysql里面打开后,发现全部用?替代了。然后就百度,根据百度的方法,我打开mysql查看发现除了一部分的字符属性改成了utf8,其余都没有变,然后把全部都改了以后,还是会乱码。后来我发现是我eclipes这边的代码还是之前的语言类型,然后就把全部都改了,就可以输入了中文。

    六.实验心得

    为期两周的数据库课程设计马上结束,在这两周里面收获颇丰。从课设开始的第一天,我们在老师的指导和阅读指导书的前提下自主完成了一个简单的数据库系统的编写。从系统的分析,到整体的设计,再到数据库的建立,以及java前端页面的编写。数据库驱动的加载。可以说整个的项目开发都是由一个人完成。这是在本学期学习了java课程和数据库课程之后的第一次也是在校的一次很宝贵的实战经验总结。之前对两门课程的学习只是简单的基础学习,没有设计到整个系统的开发。但是在这次的实践中对于整个系统开发有了更深的认识。从专业知识学习的角度说,首先我学会了作为一个系统的整个数据库的建立和完善。学会将SQL语句嵌入java中,对数据库进行操作。也学会了如何利用java的Mysql驱动连接数据库,这为之后的java的其他开发奠定了坚实的基础。其次数据库可课程设计更是提升了java的实战能力。在本次课设中,通过主函数中对其他各个累的调用和 其他设计,更深层次的了解或者说是掌握了java的面向对象这一概念。此次开发总共涉及了自己编写的大大小小的十几个java文件,但正是由于面向对象的思想,对于java的操作却没有想象的那么复杂。系统的维护和改动也只需要在相应的子文件里面做改动。本次实战中具有突出的是在java的主界面的编写中,为了对于各个子文件(子页面)的操作更加的简便,也为了主菜单格式的统一,我使用了树目录结构的方式,使得主界面的操作灵活方便。也使得各个操作在主界面的显示样式更加的统一方便好看。总体来说本次的数据库课程设计从整体上独立完成了一个系统的开发。为之后多项专业课的学习打下了坚实的基础,也是一个检验自己java与数据库知识掌握程度的机会,在此次课程设计中收获颇丰,再次有类似的学习事件机会。
    以下为本人的数据库课设的页面展示。希望对读者有所启迪。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 更改数据库字段名称

    2012-06-04 11:26:12
    ALTER TABLE LAS.TBZ_CSC_APPLICATION drop COLUMN SOURCEID GO 首先需要添加一个你想要的字段,然后删除那个添加错误的字段 以上代码删除错误添加的字段
    ALTER TABLE LAS.TBZ_CSC_APPLICATION
         drop COLUMN SOURCEID
    GO

    首先需要添加一个你想要的字段,然后删除那个添加错误的字段

    以上代码删除错误添加的字段

    展开全文
  • 课程名称 数据库原理及应用 设计题目 学生信息管理系统数据库设计与实现 专 业 网络空间安全 班 级 网安03 学 号 姓 名 完成日期 20200511 任 务 书 设计内容: 自拟一个应用场景,完成一个数据库应用系统中数据库...

    数据库原理及应用课程设计

    西南石油大学

    课 程 设 计 报 告

    课程名称 数据库原理及应用
    设计题目 学生信息管理系统数据库设计与实现
    专 业 网络空间安全
    班 级 网安03
    学 号
    姓 名
    完成日期 20200511

    任 务 书
    设计内容:
    自拟一个应用场景,完成一个数据库应用系统中数据库部分的分析、设计与实现。
    设计要求:

    1. 完成系统需求分析,数据库概念结构设计、逻辑结构设计、物理结构设计(如需);

    2. 创建数据库,表结构、存储过程、触发器等数据库对象;

    3. 通过控制台操作数据库,实现各种增删改查操作;

    4. 场景复杂程度合理,设计的E-R图中的实体不少于4个,数据库表不少于5张。

                     指导教师:           
                             2020 年 4 月    
      

    1.概述

    1.1本设计的背景和意义
    1.设计的数据库管理系统背景:
    由于高校的规模大,学生人和老师人数多,教务系统,图书馆等其他资源的增加,从而设计一个学生信息管理系统。
    2.设计的意义
    为了方便学校对学生的信息进行管理,同时顺应互联网时代的发展,数据库和降低人工成本,同时提高学生信息的保密性,查询的效率提升,此外,与传统的信息管理这有助于提升学校的办学效率,提高学校的知名度。
    1.2数据库设计开发工具
    本设计采用的数据开发工具为SQL Server 2008
    Microsoft Visio 2009

    需求分析

    2.1需求概述
    学生信息管理系统的作用:
    用于学校等教育机构的,学生,老师的信息管理,查询,维护,更新等高效率操作,该系统操作简单,便于对学工信息的管理。
    2.2功能需求
    学生信息管理系统实现的功能:
    用于学生对个人信息的查询,添加,修改等管理。
    学生成绩的录入,修改,删除,查询等功能。
    2.3数据需求
    班级:班级编号,班级专业,班级院系;一个班级有多个学生,每一个学生只能属于一个班级,需要记录学生的,学生编号,学生姓名,性别,年龄,出生日期。

    课程:有课程编号,课程名称,所需学分,同时一个学生可以选择多个课程,多个课程又可以被同一个学生选择,学生在选修结束后会得到相应的成绩,同时,一个老师可以教授多个课程,多个课程又可以被同一个老师教授,老师可以得到相应的评分

    概念结构设计

    3.1局部E-R图
    3.1.1学生班级局部E-R图
    在这里插入图片描述
    3.1.2教师信息局部E-R图
    在这里插入图片描述
    3.1.3课程信息局部E-R图
    在这里插入图片描述3.1.4学生信息局部E-R图在这里插入图片描述
    3.2完整E-R图
    在这里插入图片描述班级(班级号,所属专业,所属院系)
    学生(学生编号,学生姓名,性别,出生日期,班级编号,其中班级编号为外码,
    参照班级表中的班级编号)
    教师(教师编号,教师姓名,性别,出生日期)
    课程(课程编号,课程名称,所需学分)
    成绩表(学生编号,课程编号,成绩)
    其中学生编号是外码,参照学生表中学生编号
    课程编号为外码,参照课程表中的课程编号
    评分表(教师编号,课程编号,评分)
    其中教师编号是外码,参照教师表中教师编号
    课程编号为外码,参照课程表中的课程编号

    逻辑结构设计

    4.1建立关系模式
    根据概念结构设计,可转换得到如下关系模式:
    学生表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    学生编号 Char(6) N Y N 6位数
    学生姓名 Varchar(20) N N N 无
    性别 Char(2) N N N 默认为“男或女
    出生日期 Datetime N N N 无
    班级编号 Char(6) N N Y
    教师表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    教师编号 Char(6) N Y Y 6位数
    教师姓名 Varchar(20) N N N 无
    性别 Char(2) N N N 默认为“男或女
    出生日期 Datetime N N N 无
    课程表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    课程编号 Char(6) N Y Y 6位数
    课程名 Varchar(20) N N N 无
    教师编号 Char(6) N N Y 6位数
    所需学分 Varchar(20) Y N N 无

    班级表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    班级编号 Char(6) N Y N 无 前两位字母代表专业,后三位代表班级
    班级专业 Varchar(20) N N N 无
    所属院系 Varchar(20) N N N 无

    成绩表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    学生编号 Char(6) N Y Y 6位数
    课程编号 Char(6) N N Y 6位数
    成绩 Varchar(20) N N N 无

    评分表
    列名 数据类型 允许为空 主键 外键 CHECK约束 备注
    教师编号 Char(6) N Y Y 6位数
    课程编号 Char(6) N N Y 6位数
    评分 Varchar(20) N N N 无

    4.2关系模式规范化处理
    分析关系模式是否达到第三范式,如果没达到,将其分解为达到第三范式要求;如果需要反规范化处理,则进行反规范化处理。

    上述关系模式均达到第三范式要求

    数据库实现

    5.1建立数据库
    创建homework数据库

    Create database homework

    5.2数据表创建
    5.2.1班级表的创建
    create table class(
    clno char(6) not null primary key,
    major varchar(20) not null,
    dept varchar(20) not null
    )
    5.2.2学生表的创建:
    create table students(
    sno char(6) not null primary key
    check(sno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
    sname varchar(20) not null,
    ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
    sdate datetime not null,
    clno char(6) not null foreign key references class(clno)
    )
    5.2.3教师表的创建:
    create table teachers(
    tno char(6) not null primary key
    check(tno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
    tname varchar(20) not null,
    ssex char(2) not null check(ssex='男’or ssex=‘女’)default ‘男’,
    sdate datetime not null
    )

    5.2.4课程表的创建:
    

    create table courses(
    cno char(6) not null primary key
    check(cno like ‘[0-9][0-9][0-9][0-9][0-9][0-9]’),
    cname varchar(20) not null,
    pay varchar(20),
    tno char(6) not null foreign key references teachers(tno)
    )
    5.2.5成绩表的创建
    create table sgrades(
    grade numeric(3, 0) not null,
    sno char(6) not null foreign key references students(sno),
    cno char(6) not null foreign key references courses(cno)
    )

    5.2.6评分表的创建
    create table tgrade(
    tgrade varchar(20) not null,
    tno char(6) not null foreign key references teachers(tno),
    cno char(6) not null foreign key references courses(cno)
    )
    5.3数据视图创建
    在这里插入图片描述

    展开全文
  • Oracel 甲骨文公司 SQLSever 微软公司 DB2 IBM公司 ...数据库:长期存储在计算机内的有组织的、可共享的相关数据的集合。 数据库管理系统:维护管理数据集合的软件系统。 数据管理技术:对数据的收集、整理、组织、存储
  • C# 数据库课程设计

    2018-06-28 13:11:14
    数据库课程设计报告 题目:安徽工业大学通讯录管理系统 学号: 159074294姓名: 程效龙班级: 网152指导教师:陈业斌完成日期:2018年6月7日 目录一 引言1.1 通讯录系统设计开发的目的和意义1.2设计通讯录系统...
  • 数据库系统原理课程设计报告 图书借阅管理系统 第1章 设计背景与需求分析 1.1 设计背景 1.1.1 图书管理的现状 图书馆作为一种资源的集散地,图书和用户在借阅资料繁多,包含很多的信息管理,现在有很多的图书...
  • 特殊时期,不能外出,整理一下本科期间做过的课程设计,学完数据库,设计一个学生选课管理信息系统,老师给的要求如下: 系统功能基本要求 教师信息,包括教师编号、教师姓名、性别、年龄、学历、职称、毕业院校,...
  • 数据库原理》课程设计是计算机科学与技术课程体系专业实践教学的重要环节之一,是学完《数据库原理》课程后进行的一次全面综合实践,其目的在于加深学生对数据库基本概念、基本原理,以及关系数据库设计理论的...
  • 2020年 第三期《python全栈测试开发》网络课程暂定于5月旬号开班 感兴趣的小伙伴戳此图标QQ联系: 1.1.1创建数据库 MySQL服务器数据库可以有多个,分别存储不同的数据。要想将数据存储到数据库中,首先需要...
  • 一、 实现的功能 1、 系统管理员 Ø ... Ø 课程管理模块: 管理员可以对课程进行增,删,查,改等操作。 Ø 教室管理模块: 管理员可以对教室信息进行增,删,查,改等操
  • 这学期学习了数据库之后,到结尾写个数据库课程设计,下面这个课程设计可是我花了好长时间才写完,先供大家参考 目 录 1需求分析 …………………………………………………………4      &...
  • 数据库课程设计

    2019-07-12 20:13:23
    图书管理系统 1.概述 项目背景 2.需求分析 2.1 系统需求 2.2 数据需求 2.3 数据字典 2.3.1 书籍信息表 2.3.2 库存信息表 2.3.4 顾客信息表 2.3.5 管理员信息表 ...3.数据库设计 3.1 ...
  • 由于时间关系,里面许多图片都已经变形或错位  ...课程设计(学年论文)      题目:学生选课管理系统的设计与实现    系 院 计算机科学技术系 专 业 计算机科学与技术  班 级  姓 名  学 号
  • 1.需求分析 我们都有许多的好友,要把他们的各项信息都记录清楚可不是一件简单的事情,所以我决定设计一个个人简单通讯录数据库,用来存储好友各类信息。...删除联系人,通过程序,从数据库中删除联系人的基...
  • 本文写作的背景:1、数据库课设做到一部分以后,感觉对需求的分析不够明确,2、在后台数据库的存储过程,视图,触发器等等都没有做好,导致了在编写代码时临时改后台数据库,导致混乱。3、并没有做到对系统的...
  • 1.谈谈你对本课程学习过程的心得体会与建议? 严格按照《SQL数据库课程设计要求》完成课程设计。 《SQL数据库课程设计》要求 《SQL数据库课程设计》是大连理工大学网络教育学院计算机应用技术专业开展的一项实践...
  • 报刊订阅管理系统【SQLServer数据库+课程设计文档】 1.需求分析 1.1系统需求分析 1.1.1系统调查 1.1.2用户需求 1.1.3 可行性分析 1.1.4系统业务流程图 1.2 系统逻辑方案 1.2.1 数据流图(简称DFD) 1.2.2数据...
  • sql server 2000 2005没有date date是SQL Server 2008新引进的数据类型 note1 数据库:数据的存储仓库; 文件可以作为数据库; ATM 硬盘: 常见的数据库: MS SQLServer DB2 MySQL infomix Oracle...
1 2 3 4 5 ... 20
收藏数 28,080
精华内容 11,232