关系模型数据库系统的数据结构简单,表示数据及其数据之间的联系均采用关系(二维表),同时关系模型有扎实的数学理论做基础,使得数据的操作可以通过关系的运算来完成。

关系及关系模型

关系是数学上的一个概念,建立在日常生活中所论及的关系概念之上,例如我们通常所说的邻里关系、朋友关系、学生与所选修的课程及该课程的成绩关系等。在这里我们所论及的朋友关系涉及到了互为朋友的双方,在数学上可表示为(张,李);邻里关系也涉及到了互为邻里的双方,表示为(李家,张家);学生与所选修的课程及该课程的成绩关系,涉及到学生、所选的课程以及所取得的成绩,在数学上表示为(李兰,软件基础,90)。(李,张)、(李家,张家)、(李兰,软件基础,90)在数学上称为元组,括号里用逗号隔开的对象,数学上称为元组的分量。

数学上关系的概念是日常生活中关系概念的抽象,下面给出关系的简单、直观的概念:

阅读全文 »

模型是现实世界特征的模拟和抽象。在数据库技术中,用数据模型的概念描述数据库的结构和语义,是对现实世界的数据抽象。数据模型是研究数据库技术的核心和基础。 数据库技术中研究的数据模型分为两个层面:一层是面向用户的,称为概念模型;另一层面是面向计算机系统的,称为结构模型。

1. 概念数据模型

概念数据模型是独立于计算机系统的数据模型,用来描述某个特定组织关心的信息结构,属于信息世界的建模,所以概念模型应该能够方便、准确地表示客观世界中常用的概念。另外概念数据模型也是用户和应用系统设计员互相交流的桥梁,以保证数据模型能够正确地描述客观世界。

概念模型的表示方法最常用的是P.P.Chen于1976年提出的"实体-联系图方法(Entity-Relationship Approach),简称E-R模型"。E-R实体联系图是直观表示概念模型的工具,其中包含了实体、联系、属性三个成分,联系的方法为一对一(1:1)、一对多(1:N)、多对多(M:N)三种方式,联系属于哪种方式取决于客观实际本身。

E-R模型图,既表示实体,也表示实体之间的联系,是现实世界的抽象,与计算机系统没有关系,是可以被用户理解的数据描述方式。通过E-R模型图可以使用户了解系统设计者对现实世界的抽象是否符合实际情况,从某种程度上说E-R模型图也是用户与系统设计者进行交流的工具,E-R模型图已成为概念模型设计的一个重要设计方法。

阅读全文 »

1. 现实世界

  现实世界是存在于人们头脑之外的客观世界,是客观事物及其互相的联系。例如学校教学管理中涉及的学生管理、教师管理、课程管理。管理者要求:每个学期开学时制作学生选修课程情况表,内容包括学号、姓名、课程名、选修课类别(类别分为必修、选修);每个学期结束时制作学生选修课程成绩表,内容包括学号、姓名、课程名、选修课的类别、总评成绩;制作教师授课安排表,内容包括教师号、教师名,课程名,授课类别(授课类别分为主讲、辅导、实验)、学时数、班级数等。这就是现实世界,是数据库设计者接触到的最原始的数据,数据库设计者对这些原始数据进行综合、抽象成为数据库技术所能处理的数据。对现实世界的数据描述,就成为信息世界。

2. 信息世界

  信息世界是现实世界的符号描述,即将客观世界用数据来描述。例如,学生是客观世界的个体,可以用一组数据(学号、姓名、性别、年龄、班级、成绩)来描述,有这样一组数据不见其人便可以了解该学生的基本情况。因此可以说信息世界就是我们所说的数据世界。信息世界中的术语包括:

(1) 实体。客观世界存在的、可以区别的事物称为实体。实体可以是具体的事物,例如学生李,教师张、数学课,也可以是抽象的事件,例如:本学期学生李选修了哪些课程,教师张教授了哪门课程,读者的一次借阅活动等。

(2) 属性。实体有很多特性,每个特性称为实体的一个属性,每个属性有一个类型。例如学生实体的属性有:学号、姓名、性别、年龄、班级、成绩,其中学号、姓名、班级的类型为字符型,性别的类型为逻辑型,年龄的类型为整型。

(3) 实体集。性质相同的实体的集合。例如全体学生的集合,全体教师集合等。

(4) 实体标识符。能够唯一标识实体的属性或属性的集合。如学生实体的属性:学号,能够唯一确定一个学生,因此可以作为学生实体集的标识符。

阅读全文 »

Java开发中的一些小技巧

Java获取URL地址中传递的参数

/**
     * 获取URL中的参数名和参数值的Map集合
     * @param url
     * @return
     */
    private Map<String, String> getUrlPramNameAndValue(String url){
    String regEx="(\\?|&+)(.+?)=([^&]*)";//匹配参数名和参数值的正则表达式
        Pattern p = Pattern.compile(regEx);  
        Matcher m = p.matcher(url);
     // LinkedHashMap是有序的Map集合,遍历时会按照加入的顺序遍历输出
    Map<String, String> paramMap = new LinkedHashMap<String, String>();
        while(m.find()){
        String paramName = m.group(2);//获取参数名
        String paramVal=m.group(3);//获取参数值
            paramMap.put(paramName, paramVal);
        }
        return paramMap;
    }

阅读全文 »

我们平时在window上做开发的时候,可能需要同时开发两个甚至多个项目,有时不同的项目对JDK的版本要求有区别,这时候我们可能会在一台电脑上安装多个版本的JDK

当我们想要切换使用的JDK版本时,我们可以有两种做法:
  1.手动去修改JAVA_HOME环境变量,将变量的值指向对应的JDK版本的安装目录即可.
  2.通过编写批处理脚本来根据选择的JDK版本动态修改JAVA_HOME环境变量的值,这是一种偷懒的做法,这种做法需要一个RefreshEnv.exe辅助软件来刷新环境变量的值



阅读全文 »