프로그래밍/DBMS

DBMS 2일차 -데이터 베이스, 테이블, 모델링

윤도ri 2021. 12. 8. 17:46

>데이터베이스 생성
:  CREATE DATABASE 데이터베이스명;

>데이터베이스 사용
 USE 데이터베이스명;

 

**본 수업에서 {} 의미 : 생략이 가능하다는 의미

>DDL (Data Definition Languagae )

-데이터 정의어
-테이블에 관련된 쿼리문


1.CREAT : 테이블 생성
2.ALTER : 테이블 수정
3.DROP  : 테이블 삭제 

 

>자료형

자바 할때처럼 데이터를 넣을때는 자료형을 써주어야 한다. 

1. 숫자형

1) INT        : 정수
2) DECIMAL(n,m)   : n(전체자리수)/ m(소수점자리수) 
                         ex) DECIMAL(4,2)--> -99.99 ~99.99
                              (double,float 대신)

2.문자형

1) CHAR(n)  :n바이트의 문자열(고정형),빈 자리는 그대로 남겨둔다.
                   ex) CHAR(4) --> [   ] -->'A를 넣으면'-->[A   ]

2)VARCHAR(n)  :n바이트의 문자열(가변형), 빈 자리는 할당 해제 
                   ex) VARCHAR(4) --> [   ] -->'A'를 넣으면?-->[A]  //가장 많이씀
                         (적게잡고 많이넣으면 안들어감)


3.시간 (날짜) 

예전 필름카메라 밑에 찍히는 날짜처럼.. 딱 그 날짜! 그 시간!
1) DATE : 한 순간의 날짜를 표현하는 타입  
2) DATETIME : 한 순간의 날짜와 시간을 표현하는 타입

 

----------------------------------------------------------------------------------------

>테이블

 

>>테이블 생성

       CREATE TABLE 테이블명(
                   컬럼명1 자료형, 
                   컬럼명2 자료형,
                         ...
          );

>>테이블 삭제

       DROP TABLE 테이블명;

 

>>테이블 수정
       ALTER TABLE 테이블명 

                   +

      컬럼 추가  ADD 컬럼명 자료형

      컬럼수정   MODIFY 컬럼명 자료형 
      컬럼삭제   DROP 컬럼명 

 

>>제약조건
-데이터 삽입시 특정한 조건에 맞는 데이터만 삽입될 수 있도록 걸어놓는 조건

1)CHECK (칼럼 IN(값1, 값2.....))  

젠더는 M아님 W니까 조건식으로 묶어주기

2) 컬럼명 자료형 UNIQUE

-중복되는 값이 들어오면 오류 발생  (ex: 주민번호, 핸드폰번호)

(PK는 활용하기 위해 쓰는 제약조건이라 둘이 다르다) 

 

3) 컬럼명 자료형 NOT NULL

-값을 적지않으면 오류 발생(ex:비밀번호)

:PK ,FK 는 따로 검사해줘서 상관없는데 가끔 꼭 필요한 경우인데 PK,FK아닌 경우있다.

예를들어 비밀번호 같은것이다. 그래서 이럴땐 꼭 적어줘라라는 의미로 not null을 써준다 

 
>>PRIMARY KEY
-기존 테이블 ----> ALTER / ADD CONSTRAINT 
-새로운 테이블 ---> CREATE 안에 CONSTRAINT PRIMARY KEY(컬럼명)


>>FOREIGN KEY 
-다른 테이블과 관계성을 맺기 위해 가져오는 PK값
-다른 테이블에 존재하는 값만 들어올 수 있도록 걸어주는 제약조건


>>관계성을 맺은 테이블
-FOREIGN KEY 를 부여한 테이블은 자식 테이블 
-참고되고 있는 테이블은 부모 테이블 

              case1.값 추가, 테이블 생성: 부모테이블 먼저
              case2.값 삭제, 테이블 삭제: 자식테이블 먼저

 

>>무결성

-데이터의 정확성, 일관성, 유효성이 유지 되는것 

1)정확성 
데이터는 애매하지 않아야 한다. 
 (ex:월드컵기간..시간은 애매하지만 행사 기간알려줄때 정확하다고 볼 수도 있다. 관점에 따라서 달라질 수 있다. )


2)일관성 
각 사용자가 일관된 데이터를 볼 수 있도록 해야한다.

3)유효성
데이터가 실제 존재하는 데이터여야 한다.

 

<종류>


1. 개체 무결성
-각 개체가 구별되도록 해야한다.
(서로 다른 두 개체는 같지 않아야 하는것)  
 --> 그래서 테이블이 PK로 설정된 컬럼을 가지도록 설계한다. 


2. 참조 무결성
-참조되는 기본키(PRIMARY KEY)는 실제 존재하는 키여야 하는것.

3. 도메인 무결성
-컬럼의 타입, NULL값 허용 등에 대한 사항을 정의하고  올바른 데이터가 들어왔는지 확인 하는것 
   ex)제약조건 쓴다.

 

--------------------------------------------------------------------------------------------------------------------------------

>모델링

-추상적인 주제를 DB에 맞게 설계하는 것 

-5가지 단계로 진행

 

 요구분석 > 개념적 설계 > 논리적 설계 > 물리적 설계 > 구현

 

ex)영화관

 

1. 요구분석

 
영화관 

로그인
예매 [영화관정보,영화정보,일시,좌석]
영화조회   [영화제목,영화장르,감독,배우정보,제작사,러닝타임]
영화관조회  [이름, 주소, 전화번호, 사이트]

2. 개념적 설계(개념 모델링)

영화 예매 영화관
영화코드 예매번호 영화관 코드
영화제목 예매자 이름
영화장르 영화코드 주소
감독 영화관코드 전화번호
배우정보 일시 사이트
제작사 좌석  
러닝타임    


3. 논리적 설계(논리 모델링)

영화 예매 영화관
영화코드(PK)  예매번호(PK) 영화관코드(PK)
영화제목(NN) 예매자 이름
영화장르 영화코드(FK) 주소
감독정보(FK) 영화관코드(FK) 전화번호
배우정보 일시 사이트
제작사(FK) 좌석  
러닝타임    



4. 물리적 설계(물리 모델링)
  영화코드 :VARCHAR(300)....
  영화제목 :VARCHAR(300).....

5. 구현 

 

 

 

'프로그래밍 > DBMS' 카테고리의 다른 글

DBMS 5일차 -JDBC  (0) 2021.12.15
DBMS 4일차 - DBMS 문법  (0) 2021.12.10
DBMS 3일차 - 정규화,DML  (0) 2021.12.09
DBMS 1일차 -DBMS  (0) 2021.12.08