Oracle 2강 - 관계형 데이터모델

Whatever·2021년 9월 7일
0

기초 ORACLE

목록 보기
1/27

1강은 오리엔테이션으로 대체

관계형 데이터모델 개념

순서 : 1. 개념적 모델링 > 2. 논리적 모델링 > 3. 물리적 모델링

-개념적 모델링
Table의 전단계 : entity(행과 열을 가짐)
attribute(속성 - 열), tuple(행), relationship
-논리적 모델링
어떤 속성(attribute)이 entity에 포함되어야 하는지.
6단계의 정규화 과정 - Table이 분할됨.
업무식별자 - 다른 사람들과 특별하게 구분되는 열의 값.(거의 대부분의 식별자는 인공식별자)
= PK(Primary Key, 식별자)의 특성

단계마다 용어들이 다름.
개념적 -> 논리적 -> 물리적
entity -> relationship -> row
attribute -> tuple -> colum

[관계형 데이터모델]

  • 현재 가장 많이 사용되는 데이터베이스 모델

  • 2차원 Table 구조로 되어있음.

  • 행(column)과 열(row)로 이루어진 Table 형태로 표현.

  • Structure Query Language(SQL)
    한 문장이 여러 개의 절로 구성되고 절 안에는 여러가지 간단한 명령문으로 구성됨.
    어떤 데이터를 가져올 것이냐를 정해주는 언어가 SQL임.
    자연어에 가까워 배우기 쉬운 문법.
    SQL은 절차적 언어(ex. C언어)의 특징을 가지고 있지 않음. (변수, 제어문, 반복문 등 없음) - 비절차적 언어임.
    => 보완하기 위해 PSQL이 나옴.
    SELECT 어떤 열을 보여주는가
    FROM 어떤 테이블에서 가져오는가
    WHERE 조건

    varchar - 데이터 잔여 공간을 스스로 조정해주는 데이터타입

<릴레이션(Relation)>

  • Table
  • 관계형 데이터베이스에서 정보를 구분하여 저장하는 기본 단위.
  • 한 데이터베이스 안에서 같은 Table(Relation)명이 있으면 안 됨.
  • 한 Table 안에서 속성명이 같으면 안됨.
  • Table 간에는 같은 속성명이 있어도 됨.

<튜플(tuple)>

  • 개체에 속한 구성원들 개개의 정보를 표현
  • 튜플은 없을 수 있음(데이터를 의미).
  • 열이 없는 Table은 없음(반드시 존재).
  • 행은 없어도 가능(데이터 내용이 없을 수 있으니까).

<속성(attribue)>

  • 릴레이션에서 관리하는 구체적인 정보 항목(필드)
  • 해당 개체를 특정지을 수 있는 값들의 집합

<도메인(domain)>

  • 각각의 속성들이 가질 수 있는 값들의 집합 -> 도메인이 적으면 중복되는 값들이 많다는 것.
    도메인 값이 많은 것을 가지고 인덱스를 만들면 효율적이다.

<키의 필요성>

  • 기본키(Primary Key) : 하나의 행이 나머지 행과 완벽하게 구별될 수 있도록 가지는 값.
  • 후보키(Candidate Key)
  • 대체키 : 기본키를 대체할 수 있을 때
    기본키의 성질 + 후보키 = 대체키
  • 복합키 : 복수 개의 기본키로 설정되는 키
    - 외래키 : 부모Table(주는 쪽)의 기본키가 자식Table(받는 쪽)의 일반키가 되는 경우
    Relationship(관계)이 맺어지면 외래키 있음(관계를 맺을 때 가장 중요함).
    외래키가 있어야 Join 할 수 있음.
  • 식별관계와 비식별관계(주가 사라진다고 종이 사라지지 않는 경우)로 나눌 수 있음.
  • 참조무결성 : 관계로 이루어져 있을 때, 부모Table을 삭제할 수 없음.

객체를 없애는 것 = drop , 객체 안의 데이터를 없애는 것 = delete

[실습]
View : Select문을 실행시켰을 때 나오는 화면
Package : 사용자가 만들어 쓰기 어려운 부분을 이미 만들어서 제공해주는 것

실행할 때 단축키 : Ctrl + Enter

연산자의 종류
-- : 그 줄만 주석
/* */ : 범위 지정 주석

~(필드) : 자바에서 1의 보수를 구하는 연산자
@ : at
&(엔퍼센드) : and
*(아스트릭스) : all *

||(파이프) : 들어온 그대로
/(슬러시)
\(역슬러시)

Oracle에서의 명령은 반드시 세미콜론(;)으로 끝나야 한다.
계정명에 특수문자 되도록 쓰지 말기.

  • 계정 : 오라클에서 접속권한을 가진 사용자
    . 계정명, 암호, 권한 속성을 부여
    (사용형식)

    CREATE USER 계정명 IDENTIFIED BY 암호명;

  • 권한 : 계정이 수행할 수 있는 행위정의 -> GRANT 명령으로 사용
    . CONNECT, RESOURCE, DBA
    CONNECT - 데이터베이스 접속권한, RESOURCE - 자원사용권한, DBA - 데이터베이스 관리자권한
    . GRANT 명령 사용
    (사용형식)

    GRANT CONNECT, RESOURCE, DBA TO 계정명;

접속할 때는 Test 먼저 하고 접속하기
객체를 만들 때는 CREAT, 지울 때는 DROP
유저를 변경할 때는 ALTER

삭제연산 : 제한(Restrict), 연쇄(Cascade), null값으로 대체(Nullify)

<데이터 무결성>

  • 참조무결성 : 자식Table에 데이터를 입력하거나 수정할 때 부모Table을 검증

<뷰(View)>

  • 객체. SELECT 명령문을 실행했을 때 밑에 뜨는 창. View를 변화시키면 원본이 변경됨.

<SQL의 개요>
대화식 SQL : DBMS 회사에서 제공하는 유틸리티프로그램
내장 SQL : SQL문이 C, Java와 같은 프로그램 안에 포함되어서 사용되는 방식

오늘의 소감 :
Oracle에서 어떤 부분이 중요한지 잘 모르겠다.
그리고 데이터베이스 프로그램이다보니 프로그래밍보다는 컴활 1급 공부했을 때 만났던 액세스와 더 비슷하다.
실무에서 어떻게 쓰이게 될 지 궁금하다.
Java 고급과정에서 연계해서 쓴다는데 그때를 위해서 배우는 걸까?

0개의 댓글

관련 채용 정보