개발 공부/SQL

데이터 베이스 기본 개념

공부하는개발자_ 2023. 6. 12. 23:35

데이터베이스란?

데이터들을 구조적으로 통합해둔 곳. 여러 사용자가 공유하고 접근할 수 있도록 구조화된 데이터의 집합
DBMS로 관리되는 데이터 묶음

 

DBMS (DataBase Management System)란?

응용 프로그램이 데이터베이스를 사용 할 수 있게끔 관리해주는 소프트웨어 시스템

( DB프로그램이라고 생각하면 됨)

- 파일시스템이랑 비슷하지만 파일시스템은 데이터 중복, 일관성 오류 등이 있음

종류 : MySQL, Oracle, DB2 등 

 

SQL : 데이터에 접근할 수 있는 표준 언어

계정이 있고, 대표 계정이 System. 네트워크를 통해 socket을 만들어야 함.

라이브러리 (JDBC Driver) : 자바 개발자들이 쉽게 오라클에 접속 할 수 있도록 도와줌.

SQLPLUS: 소켓 생성 후 접속 할 수 있음. 명령어를 보낼 때 표준 언어가 SQL

 

 



데이터베이스 스키마(database schema)
데이터베이스에서 자료 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조

  • 외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습으로 조직의 일부분을 정의한 것
  • 개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것
  • 내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 형태를 기술하는 것

- 오라클에는 스키마 계정이 딱 하나 뿐이다.

 

 

엔터티 타입(개념모델링) = 테이블 (물리모델링)

엔터티                              = 행 (ROW) / 레코드, 튜플..

어트리뷰트(속성)             = 열 (COLUMN)

엔터티 타입                      = 엔터티

 

- 용어를 다르게 사용하곤 함. 

 

 

<cmd>

 

HR계정 lock을 풀어줘야 함

# sqlPlus
1. System계정 접속
  - system/kosta

2. HR계정 unlock
  - system계정에서 실행합니다.
  SQL> alter user hr account unlock; ( ;을 써야 하는 명령어는 SQL)
  
3. HR계정 비번설정하기
  - system계정에서 실행합니다.
  - alter user hr identified by hr;

4. HR계정에 접속하기
SQL> conn hr/hr

5. show User로 계정 변경 된 것 확인

SQL> show user ( ;을 쓰지 않아도 되는 명령어는 SQL PLUS)

 

6. HR계정에서 제공되는 테이블 객체들 확인하기

 

 

 

SQL > SELECT * FROM tab;

TNAME                                                        TABTYPE
------------------------------------------------------------ --------------
 CLUSTERID
----------
COUNTRIES                                                    TABLE


DEPARTMENTS                                                  TABLE


EMPLOYEES                                                    TABLE



TNAME                                                        TABTYPE
------------------------------------------------------------ --------------
 CLUSTERID
----------
EMP_DETAILS_VIEW                                             VIEW


JOBS                                                         TABLE


JOB_HISTORY                                                  TABLE



TNAME                                                        TABTYPE
------------------------------------------------------------ --------------
 CLUSTERID
----------
LOCATIONS                                                    TABLE


REGIONS                                                      TABLE

 

7. 테이블의 구조 확인하기

 

선의 개수로 확인

- 테이블의 구성요소 : 열 (각 자료형으로 구성 됨)

 

- 대소문자 구분 안해도 괜찮지만 가독성을 위해 문법은 대문자로, 값은 소문자로 권장.

 

 

 

숫자형

NUMBER(6) : 정수6자리

NUMBER(8,2) : 정수6자리, 실수2자리

 


  문자형

  • CHAR :고정 길이 (처리 속도 좋음) - 고정된 번호를 사용할때 권장 
  • VARCHAR2 :가변 길이 (메모리 효율성 좋음)

 

RDBMS : data가 들어있는 TABLE간의 관계를 맺고 있음.

DB모델링 절차
개념 / 논리

 

HR스키마

 

 

구조를 파악 해야함. 관계선이 가장 많이 연결되어 있는 테이블이 핵심 테이블이다.

DB에서 NULL은 값이 아님. NOT NULL은 값이 있어야 함을 의미. 

 

Primary Key란? (PK, 주 식별자, 기본 키) 

행을 구분해주는 최소의 정보. 각각의 행들을 고유하게 구분해 주는 컬럼.

특징 : 중복될 수 없고 (Unique), Null일 수 없다

스키마에서 실선 사용.

 

FOREIGN KEY란? (FK, 외부 식별자, 외래 키)
다른 테이블의 PK를 참조하는 키 . 참조하는 PK와 동일한 domain을 갖는다

중복 데이터 제거를 위해 테이블을 분리할 때, 반드시 필요한 개념

'한 테이블에 존재하는 다른 테이블의 정보' 이기 때문에 외래키라고 부름.
외래키가 포함된 테이블을 자식 테이블이라고 하고 외래키 값을 제공하는 테이블을 부모 테이블이라한다.

 

FOREIGN KEY의 역할

두 테이블을 연결해 주는 다리 역할을 함

참조하는 테이블의 무결성을 높여 줌

 

  • 부모엔터티 : 참조될 곳. 미리 자료가 저장되는 곳
  • 자식엔터티 : 참조하는 곳 
    - FK 참조하는쪽. EMPLOYESS에서 JOB을 참조하고 있다



  • FOREIGN KEY 컬럼 : 자식엔터티 쪽에서 부모엔터티(PK)를 참조하는 컬럼

 

 

 

 

 

 

1:M관계 Primary Key, Foreign Key
M:1관계

M:N관계 Foreign Key 

- 선의 개수로 확인

 

  • 필수참여 (NOT NULL)
  • 선택참여 동그라미 표기O 
    한 직무 담당은 여러 명이거나, 없을 수도 있음 ( 0  or  Many)
    한 사원은 반드시 하나의 직무를 담당한다

한 대륙에는 여러 국가 정보가 있다. 없을 수도 있다.

한 국가는 한 대륙의 정보를 참조한다. O 참조하지 않을 수도 있다

 

 

 

 

 

 

 

'개발 공부 > SQL' 카테고리의 다른 글

제약 조건 / ERD 사용  (1) 2023.06.20
SUBQUERY / DDL/ DML  (5) 2023.06.16
GROUP BY / HAVING/ JOIN/ UNION  (0) 2023.06.15
SQL 함수  (1) 2023.06.14
SQL Developer : SELECT  (2) 2023.06.13