[DB] 데이터베이스_개요

김나영·2022년 8월 30일
0

DATABASE

목록 보기
1/9
post-thumbnail

데이터베이스

여러 사람 (응용프로그램)에 의해 공유 되어 사용될 목적으로 통합, 구조화 되어 저장,관리 되는 데이터들의 집합

DBMS

데이터베이스를 저장하고 관리하는 역할을 하는 소프트웨어
(Database Management System)
응용프로그램 ↔ DBMS ↔ 데이터베이스

사용자 생성 및 권한 설정

데이터베이스 권한

  • 데이터베이스 보안
    • 모든 사용자가 데이터베이스에 접근하거나 수정이 가능하다면 보안상 큰 문제가 발생
    • 각 사용자마다 최소한의 권한을 주어 데이터베이스의 보안을 유지
    • DBA(Database Administrator) 가 사용자마다 다른 권한을 부여 => 데이터베이스 관리자

데이터베이스 사용자

  • 관리자가 생성한 사용자 정보
    CREATE USER SCOTT IDENTIFIED BY TIGER
    → 사용자명 : SCOTT / 비밀번호 : TIGER (대소문자 지켜야함)
    ** DB내부에서는 대소문자 구분을 하지 않기 때문에 CAMELCASE가 존재하지 않음

  • 사용자 삭제
    DROP USER SCOTT;
    DROP USER SCOTT CASCADE;
    쿼리문은 세미콜론으로 끝나야 함
    사용자가 데이터베이스 객체(테이블)

  • 데이터 사전 (DATA DICTIONARY) / System Catalog

  • 데이터베이스에 저장된 정보를 요약한 정보 (메타데이터)

  • 데이터베이스 사용자, 테이블, 인덱스 등의 정보를 테이블 및 뷰의 형태로 제공

  • 데이터베이스 사용자 목록을 확인할 수 있는 데이터 사전이 존재함

  • 사용자 유형별로 별도로 관리함

  • 데이터 사전의 종류

    • DBA_ : 데이터베이스 전체에 포함된 모든 객체에 대한 정보
    • USER_ : 자신이 생성한 모든 객체에 대한 정보
    • ALL_ : 자신이 생성한 모든 객체 + 다른 사용자가 생성한 객체 정보 중 볼 수 있는 정보
    • X$_ : 데이터베이스 성능 분석 및 통계 정보
    • V:X_ : X_ 의 뷰 (View)
  • DBA_USERS 테이블 구조 확인
    DESC DBA_USERS;

  • DBA_USERS 테이블의 USERNAME 칼럼 조회
    SELECT USERNAME FROM USER_NAME;

데이터베이스 접근 권한

  • 사용자 권한 기본 제공 role
  • 데이터베이스 접속 권한 부여
    GRANT CONNECT TO SCOTT;
  • 데이터베이스 접속 및 객체 사용 권한 부여
    GRANT CONNECT, RESOURCE TO SCOTT;
  • 데이터베이스 접속 권한 취소
    REVOKE CONNECT FROM SCOTT;
  • 데이터베이스 접속 및 객체 사용 권한 취소
    REVOKE CONNECT, RESOURCE FROM SCOTT;
  • 데이터베이스 관리자 권한 취소
    REVOKE DBA FROM SCOTT;

SCOTT 계정

  • SCOTT
    • Oracle 데이터베이스를 배포할 때 미리 만들어 둔 계정
    • 연습할 떄 필요한 샘플 데이터가 포함되어 있음
    • 잠김(LOCK)상태이므로 잠김을 해제해야함
  • SYS 계정 접속
    SYS / AS SYSDBA
  • SCOTT 계정 잠금 해제
    ALTER USER SCOTT IDENTIFIED BY TIGER ACCOUNT UNLOCK;
  • SCOTT SQL
    • SCOTT 계정의 활성화를 위한 쿼리문이 존재하는 파일
    • SCOTT 계정의 샘플 데이터를 생성하기 위한 쿼리문도 함께 존재함
  • SCOTT.SQL 파일 실행
    • SQLPLUS 실행하고 아래 명령 입력

HR계정

  • HR계정
  • Oracle 데이터베이스를 배포할 때 미리 만들어 둔 교육용 계정
  • 연습할 때

관계형 데이터베이스 (RDB)

  • 관계형 데이터베이스 (Relational DB)
    • 데이터를 테이블(Table)에 직관적으로 간단하게 나타내는 관계형 모델 기반의 데이터베이스
    • 테이블의 각 행은 키(Key)라는 고유 ID를 포함한 레코드를 의미
    • 테이블의 각 열은 데이터의 속성(Attribute)이 포함
    • 현재 데이터베이스 시장의 주류를 이루고 있음
  • 관계형 데이터베이스 장점
    • 편리한 유지 보수
    • 대용량 데이터의 관리
    • 데이터 무결성의 보장
  • 관계형 데이터베이스 단점
    • 시스템 자원을 많이 차지
    • 구조가 복잡해질수록 성능 최적화가 반드시 필요

테이블

  • 테이블 구성
    • 행 : 로우(Row), 레코드 (Record), 튜플 (Tuple)
    • 열 : 칼럼 (Column), 필드 (Field), 속성 (Attribute)
  • 테이블 용어
    • 도메인 : 한 칼럼이 가질 수 있는 값의 범위 (집합)
    • 차수 : Degree, 한 테이블에 있는 칼럼(Column)의 개수
    • 기수 : Cardinality, 한 테이블에 있는 로우(Row)의 개수

Key

  • 하나의 테이블에서 각 로우를 고유하게 식별할 수 있는 칼럼 또는 칼럼의 조합을 의미
  • 종류
    • 슈퍼키
    • 후보키
    • 기본키 ☆
    • 대체키
    • 외래키 ☆
  • 테이블을 생성할 때 기본키(PK)와 외래키(FK)는 명시적으로 선언해야 함

슈퍼키

  • 테이블의 각 로우들을 식별할 수 있는 칼럼 또는 칼럼의 집합
  • 고객 테이블을 분석하여 슈퍼키가 될 수 있는 칼럼이나 칼럼의 집합을 선정
    판단기준 : 모든 로우가 서로 다른 값을 가질 수 있는가? 유일성

후보키

  • 최소한의 칼럼(가장 적은 수의 칼럼)으로 구성된 슈퍼키만 선정한 것
  • 후보키는 유일성 + 최소성의 특징을 가짐

☆☆기본키

  • 후보키중에서 DBA가 선택한 키를 의미
  • 기본키는 유일성 + 최소성의 특징을 가짐
  • 기본키는 개체 무결성의 특징을 가짐
    • ★NOT NULL : NULL값을 가질 수 없음
    • ★UNIQUE : 중복된 값을 가질 수 없음
  • 값이 변경되거나 의미가 변경될 수 있는 칼럼은 기본키로 부적절함

기본키 선정

  • 기본키의 종류
    • 자연키 : 비지니스 모델을 통해서 추출한 키, 즉 실제로 존재하는 데이터
    • 인공키 : 실제로 존재하지 않는 데이터를 인위적으로 추가한 키, 주로 AUTO INCREMENT 값을 사용함
  • 고객테이블의 기본키 선정 사유
    • 고객번호
      • 인공키
      • 고객이 추가될때마다 번호를 하나씩 증가시켜서 부여하므로 NOT NULL + UNIQUE 모두 만족
    • 아이디
      • 자연키
      • 일반적으로 고객마다 서로 다른 아이디를 필수로 사용하므로 NOT NULL + UNIQUE 모두 만족
      • 향후 이메일로 아이디를 대체하는 등 아이디의 의미가 변할 수 있으므로 (아이디 없이 회원가입이 가능할 수 있으므로) 기본키로 부적절함
    • 휴대폰번호
      • 자연키
      • 휴대폰이 없는 고객이 존재할 수 있으므로 기본키로 부적절함
    • 주민번호
      • 자연키
      • 모든 고객이 서로 다른 값을 가지고 있으므로 NOT NULL + UNIQUE 모두 만족
      • 회원 가입할 때 주민번호는 입력 받는 필수 요소가 아니므로 기본키로 부적절함

대체키

  • 기본키를 제외한 나머지 후보키를 의미함
  • 보조키라고도 함

외래키

  • 다른 테이블과 관계를 맺기 위해서 설정하는 키
  • 외래키는 다른 테이블의 기본키 또는 유일키와 관계를 맺을 수 있음
  • 외래키는 참조 무결성의 특징을 가짐
    • 관계를 맺은 테이블의 키(기본키 또는 유일키) 도메인을 가져야 함
    • 관계를 맺은 테이블에 없는 데이터는 가질 수 없다는 의미

관계모델링

1:M 관계

  • 한 쪽의 엔터티가 관계를 맺은 다른 엔터티 쪽의 여러 객체를 가질 수 있다.
  • 현실 세계에서 가장 흔한 관계이다.
  • 예 ) 어머님이 자식 3명을 낳으셨다. 어머님(1), 자식(3)

M:N 관계

  • 관계를 가진 양쪽 모두에게 1:M 관계가 존재할 때 나타난다.
  • 현실 세계에서 이외로 빈번하게 발생하는 관계이다.
  • 예 ) 학생들이 수강신청을 한다. 학생도 여러명 (M) : 과목도 여러 과목 (N)
  • 1:M 관계 2개를 이용해서 구현한다.

오브젝트생성

개념적 설계 (E-R 다이어그램)

  • 요구사항 분석 결과를 E-R Diagram 으로 나타낸다.
  • ★ E-R Diagram
    • 개체 : 사각형 _ Row
    • 속성 : 타원 _ Column
    • 관계 : 마름모 _ Relationship

개념적 설계 분석

  • 사원 테이블의 '사원번호'는 기본키이다.
  • 부서 테이블의 '부서번호'는 기본키이다.
  • 프로젝트 테이블의 '프로젝트 번호'는 기본키이다.

데이터베이스 오브젝트 설계


CHAR, VARCHAR2 => JAVA의 String과 같다.

기본키와 외래키의 데이터타입, 크기는 같아야한다.
칼럼이름은 동일하지 않아도 된다.

SQL

Structured Query Language


명령 프롬프트에서 SQLPLUS 로그인 하기

profile
응애 나 애기 개발자

0개의 댓글