ER图的构建

Posted zzuli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ER图的构建相关的知识,希望对你有一定的参考价值。

我们在完成一个项目前期,首要的工作是对需求进行分析,然后根据需求画出相应的数据库E-R图,这是我们后期建立数据库和对数据库进行操作的必要操作

这是一个小总结和示例

关系型数据库
        关系 (表)             student
        列                             id name    age
        记录 (一行数据)    
                                        101 terry    12
                                        102    larry 13
    Java开发
        类
        属性
        对象(实例)

    通过id查找学生的信息 id=101
        sql = select * from student where id = 101;

        Student{
            private Long id;
            private String name;
            private Integer age;
        }

        Student stu = new Student();
        stu.setId(id);
        stu.setName(name);
        stu.setAge(age);

    ORM(对象关系映射)
        关系             pojo类         
            student    Student
        列                  属性
            id             id
            name         name
            age         age

        记录                     对象
        101,terry,12    new Student(101,"terry",12);


    tbl_student(id,name,age)
    Student(id,name,age)
    StudentDao/StudentMapper(数据访问层,JDBC,hibernate)
    StudentService (业务逻辑处理层,事务处理,业务处理)
    StudentAction/StudentController(视图层,mvc框架)
    jsp
        

    1) 一对多关系,外键维护在多的一方

        tbl_clazz     
            id     name 
            1     一班
            2     二班
            3     三班

        tbl_student
            id     name     gender clazz_id
            101    terry    male        1
            102    larry    male        1
            103    tom        male        2
            104    jacky    male        2
            105    vicky    male        3
        查询出所有的学生以及该学生所在的班级

        select c.*,s.*
        from tbl_student as s left outer join tbl_clazz as c
        on c.id = s.clazz_id;

    2) 一对一
        一对一是一对多的一种特例,外键唯一
    3) 多对多
        外键维护在桥表
        学生 tbl_student
            id     name     gender 
            101    terry    male        
            102    larry    male        
            103    tom        male        
            104    jacky    male        
            105    vicky    male        

        课程
            id     name     credit
            1        Java         4
            2        JS             2
            3        html         2
            4        php         2

        学生选课表
            id     student_id     course_id     grade
            1            101                    2                        80
            2            101                    4                        68
            3            105                    1                        80
            4            105                    4                        68

            查询出id为1的学生的姓名,选修了哪些课程名称,成绩

            select s.name,c.name,sc.grade
            from tbl_student as s,tbl_course as c, tbl_sc as sc
            where s.id = sc.student_id
            and c.id = sc.course_id
            and s.id = 1;

需要特别记住的是因为外键的存在,在进行数据库操作时可以能不会允许进行删除或者修改操作,因为外键进行了约束,可以设置外键在删除和修改时的操作属性

以上是关于ER图的构建的主要内容,如果未能解决你的问题,请参考以下文章

ER(实体关系)图的答案评估

从现有 Oracle 数据库生成数据库图/ER 图的工具? [关闭]

er图的联系转化为关系模式时,怎样进行3NF分解?

绘制ER图的工具(试过visio,smartdraw,但没有用)

片段类在意图的 startactivity 方法中显示错误

一种接近ER随机图的小世界网络模型 | 网络科学论文速递11篇