본문 바로가기
728x90

Univ. Study/Database Design28

Login page Simple DB 로그인 페이지를 테스트하기 위한 간단한 DB를 만들어주었다. CREATE DATABASE week10; USE week10; CREATE TABLE user ( Id VARCHAR(255) PRIMARY KEY, Password VARCHAR(255), Role VARCHAR(255) ); CREATE TABLE department ( Id int PRIMARY KEY, Dname VARCHAR(255), Dnumber int ); INSERT INTO user (Id, Password, Role) VALUES ('admin', 'admin1234', 'super'), ('student1', 'st1234', 'student'); INSERT INTO department (Id, Dna.. 2023. 10. 31.
SQL 실습 (2) 널 값을 포함한 비교 널 값의 세 가지 의미 • 첫째: Unknown value, 알려지지 않은 값 (존재하지만 알지 못하는) • 둘째: Unavailable or withheld value, 이용할 수 없거나 보류해둔 값 (존재하지만 의도적으로 보류한) • 셋째: Not applicable attribute, 적용할 수 없는 애트리뷰트 (이 투플에는 정의되지 않는) ㅇ애트리뷰트의 값이 NULL인지 검사하는 연산자 • IS NULL / IS NOT NULL 상사가 없는 모든 종업원들의 이름을 검색하시오. SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPER_SSN IS NULL; SUPER_SSN = NULL과 같이 비교 연산자를 이용하여 NULL과 비교하는 것은 불가능하다... 2023. 10. 20.
SQL 실습(1) DB schema 중요한 SQL문에 대해서 공부해보자. 우선 SQL문을 테스트 해보기 위한 COMPANY DB schema를 만들어두자. CREATE TABLE EMPLOYEE ( Fname VARCHAR(10) NOT NULL, Minit CHAR, Lname VARCHAR(20) NOT NULL, Ssn CHAR(9) NOT NULL, Bdate DATE, Address VARCHAR(30), Sex CHAR(1), Salary DECIMAL(5), Super_ssn CHAR(9), Dno INT NOT NULL, PRIMARY KEY (Ssn)); CREATE TABLE DEPARTMENT ( Dname VARCHAR(15) NOT NULL, Dnumber INT NOT NULL, Mgr_ssn C.. 2023. 10. 20.
SQL기초 SQL SQL은 Structured Query Language의 줄임말로 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리할때 이용하는 언어이다. 데이터베이스 언어 SQL 문법의 종류를 살펴보면 크게 3종류이다. 데이터 정의 언어 (DDL : Data Definition Language) ex) CREATE, DROP, ALTER 데이터 조작 언어 (DML : Data Manipulation Language) ex) SELECT, INSERT, DELETE, UPDATE 데이터 제어 언어 (DCL : Data Control Language) ex) GRANT, REVOKE, SET TRANSACTION, BEGIN, COMMIT,.. 2023. 10. 20.
Relational Data Model 관계 모델 Table ≒ Relation 관계 모델의 용어를 보면 행은 튜플, 열은 애트리뷰트, 테이블은 릴레이션이라고 불린다. 따라서 관계모델에서 데이터베이스는 릴레이션(테이블)들의 모임으로 표현되고 릴레이션은 투플(행, 레코드)들의 집합으로 표현되고 투플은 애트리뷰트(컬럼, 필드, 혹은 속성)들로 구성된다. 일반적으로 ER 모델링 이후에 관계 모델로 변환을 하는 방식으로 DB구성이 이루어진다. Relation의 특성 우선 릴레이션은 튜플들의 집합으로 정의되는데 집합에서 원소의 순서가 무의미한 것과 마찬가지로 투플의 순서 역시 의미가 없다. 애트리뷰트 값들의 순서도 중요하지 않다. 이를 보다 일반적인 튜플의 정의라고 볼 수 있다. 애트리뷰트의 원자성이라는 특징도 있다. 투플 내의 각 값은 더 이상 나눌.. 2023. 10. 20.
MySQL Express upgrade Source Code 우선 코드가 다양한 파일 내에 구성되어있어서 git 주소를 첨부한다. https://github.com/leesanghoon421/Database/tree/main/week6 sql.js import mysql from 'mysql2'; require("dotenv").config(); const pool = mysql.createPool({ host: 'localhost', port: 3306, user: 'root', password: '0421sh0421sh!', database: 'week5', }); const promisePool = pool.promise(); // select query export const selectSql = { getBuilding: async .. 2023. 10. 5.
Univ. DB upgrade DB upgrade 아래의 table들을 기존의 DB에 추가해서 다시 design하고자 한다. EER diagram 우선 club의 경우 특별한 소속이 없이 인하대학교의 학생이라면 가입이 가능하다. 또한 club에는 여러 학생이 소속되어 있고 학생들도 여러 club에 가입할 수 있기 때문에 club과 student를 n:m의 관계로 정의해주었다. 또한 동아리방 즉, room은 없을 수도 있기 때문에 비식별관계로 정의 해주었고 room의 mandatory를 풀어주었다. 다음으로 room은 반드시 building에 포함이 되어있고 building하나에 여러 개의 room이 들어가 있을 수 있기 때문에 room : building = n:1의 식별관계로 정의해주었다. 다음으로 employee는 청소부, 경비원.. 2023. 10. 5.
EER EER EER은 Enhanced ER이거나 Extended ER의 줄임말이다. EER Model은 ER Model의 모든 modeling concept은 포함하고 추가적으로 subclasses/superclasses, specialization/generalization, categories(UNION types), attribute and relationship inheritance라는 concept이 추가된다. Subclasses/Superclasses Superclass (슈퍼클래스) 슈퍼클래스는 여러 서브클래스들이 공통으로 가지는 속성들을 포함하는 클래스이다. 예를 들면, "동물"이라는 슈퍼클래스는 "사자", "기린", "코끼리"와 같은 서브클래스들이 공통으로 가질 수 있는 "이름", "나이", .. 2023. 9. 26.
MySQL의 ER diagram 다양한 표기법 Peter Chen 표기법 ACM Transactions on Database Systems 논문에 1976년 기재된 논문이다. IE(Information Engineering)표기법 - 1981년, Clive Finkelstein과 James Martin이 공동 저술 - 80년대 중반에 James Martin에 의해 그 체계가 정리되면서 본격적으로 활용 관계의 다(n)를 나타내기 위해 까마귀 발을 사용하기 때문에 때때로 까마귀 발모델(Crow’s Foot Model)이라 부름 - IDEF1X (Integration DEFinition for Information Modeling) 표기법 - 바커(Barker) 표기법 등 약간씩 변형된 여러 가지 표기법이 있음 2023. 9. 26.
728x90