독서일지 SQLD

동화·2022년 11월 7일
0

독서일지

목록 보기
2/3

📌 1일차 [DCL, DDL]

DCL : 데이터베이스 사용자에게 권한을 부여/회수하는 언어

  • GRANT(권한을 주는 거, TO), REVOKE(회수하는 거, FROM) 잊지말자
  • ROLE : 다양한 권한을 하나의 그룹으로 묶어서 관리, 여러사용자에게 동일한 롤 부여 가능, CREATE ROLE 권한을 가진자가 사용가능.
UPDATE hoho_qualificaiton.data
SET col2 = '천재'
WHERE col1 = 'IDIOT'

이 작업을 수행하기 위한 DCL => GRANT SELECT, UPDATE ON hoho_qualitication.list TO hoho;

  • GRANT 권한 ON 테이블명 TO 유저명;
  • WHERE 조건문을 사용가능하게 하기 위한 셀렉트 권한도 수여

DDL : 데이터를 보관하고 관리하기 위한 객체의 구조를 정의하기 위한 언어

  1. CREATE : 데이터베이스 상 테이블 구조 생성
    구조-컬럼명 (한영1 다 가능하지만 시작은 문자로해야함), 데이터 타입 number, date, varchar2, char
    제약조건(constraint)-default, not null, primary key, foreign key
  2. ALTER : 테이블과 컬럼에 대해 이름 및 속성 변경, 추가/ 삭제 등 구조 수정을 위해 사용
    ALTER TABLE 세부명령 COLUNM 대상 TO 대상
    (RENAME, MODIFY(컬럼속성변경), ADD, DROP)
  3. DROP : 테이블 및 컬럼 삭제 (!!!!!! 드롭은 테이블관련 모두 삭제해서 모든 저장공간을 없던 흔적으로 만들고,
    TRUNCATE는 테이블 데이터만 삭제되고 구조는 살아있다, 즉 값을 넣지 않은 상태로 초기화시킴
                      






📌 2일차 (데이터 모델링)

프로젝트 생명주기(life cycle) 에서 데이터 모델링

  • 정보전략계획 -> 분석 -> 설계 -> 개발 -> 테스트 -> 전환 이행
  • 정보~ 분석 : 개념적 데이터 모델링, 분석 : 논리적 데이터 모델링, 설계 : 물리적 데이터 모델링

데이터의 독립성 확보

  • 각 view의 독립성을 유지하고 계층별 view에 영향을 주지 않고 변경이 가능
  • 단계별 스키마에 따라 데이터 정의어(DDL)와 데이터 조작어(DML)가 다름을 제공

데이터베이스 3단계 구조
1) 외부스키마 (사용자 관점), 2) 개념스키마( 통합관점), 3)내부스키마 (물리적 꽌점)

  • 외부스키마란 뷰 단계 여러개의 사용자 관점으로 구성되어있다. 즉 개개 사용자 단계로서 개개 사용자가 보는 개인적 데이터베이스 스키마. 데이터베이스의 개개 사용자나 응용프로그래머가 접근하는 데이터 베이스의 정의를 말한다. 개념스키마란 개념 단계 하나의 개념적 스키마로 구성 모든 사용자관점을 통합한 조직전체의 데이터베이스를 기술하는 것이다. 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스르 ㄹ 기술한 것으로 데이터베이스에 저장되는 데이터와 그들간의 관계를 표현하는 스키마. 내부스키마는 내부 단계, 내부스키마로 구성되어있고, 데이터베이스가 물리적으로 저장된 형식이다. 물리적장치에서 데이터가 실제적으로 저장되는 방법을 표현하는 스키마.
    논리적 독립성, 물리적 독립성

데이터모델링 작업순서

  • 엔터티를 그린다 / 엔터티를 적절하게 배치한다/ 엔터티간 관계를 설정한다/ 관계명을 기술한다 / 관계의 참여도를 기술한다. / 관계의 필수여부를 기술한다.






📌 3일차 (엔터티)

엔터티의 특징

  • 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당/ 업무상 관리가 필요한 관심사 / 저장이 되기위한 어떤것
  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보 (환자, 토익 응시횟수 ...)
  • 유일한 식별자에 의해 실별이 가능해야함
  • 영속적으로 존재하는 인스턴스의 집합이어야 함 ( 한개가 아니라 두개 이상)
  • 엔터티는 업무프로세스에 의해 이용되어야 한다
  • 반드시 속성이 있어야 함
  • 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함

속성

  • 업무에서 필요로 한다
  • 의미상 더 분리되지 않는다
  • 엔터티를 설명하고 인스턴스의 구성요소가 된다.
  • 기본 속성, 설계 속성(원래 업무상 존재x->설꼐하면서 도출), 파생속성(다른 속성으로부터 계산이나 변형)
  • 학생이라는 엔터티가 있을 때 학점이라는 속성의 도메인은 0.0에서 4.0 사이의 실수값이며 주소라는 속성은 길이가 20자리 이내인 문자열로 정의
  • 각 속성은 도메인 이외의 값을 갖지 못한다.
  • 한 개의 언테티는 두 개 이상의 인스턴스의 집합이어야 한다
  • 한 개의 엔터티는 두 개 이상의 속성을 갖는다
  • 한 개의 속성은 한 개의 속성 값을 갖는다.






📌 4일차 (식별자)

식별자의 특징

  • 주식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분되어야 한다.
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
  • 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
  • 주식별자가 지정이 되면 반드시 값이 들어와야 한다

식별자, 비식별자

  • 식별자 관계 : 자식엔터티의 주식별자로 부모의 주식별자가 상속이 되는 경우를 식별자 관계(Identifying Relationship)라고 지칭한다.
  • 비식별자 관계 : 부모엔터티로부터 속성을 받았지만 자식엔터티의 주식별자로 사용하지 않고 일반적인 속성으로만 사용하는 경우, 자식을 이용하지 않는게 더 유리하다고 판단 될 때

식별자 관계만으로 연결된 데이터 모델의 특징은 주식별자 속성이 지속적으로 증가할 수 밖에 없는 구조로서 개발의 복잡성과 오류가능성을 유발시킬 수 있는 요인이 될 수 있다는 사실을 기억해야 한다.






📌 5일차 (반정규화)

정규화는 데이터의 일관성, 최소한의 데이터 중복, 최소한의 데이터 유연성을 위한 방법이며 데이터를 분해하는 과정이다. -> 불필요한 데이터를 입력하지 않기 때문에 중복데이터가 제거 된다.

반정규화

데이터베이스의 성능 향상을 위하여, 데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법이다.
반정규화는 조회속도를 향상시키지만, 데이터 모델의 유연성은 낮아진다.

반정규화를 수행하는 이유

  • 정규화에 충실하여 종속성, 활용성은 향상 되었지만 수행속도가 느려진 경우
  • 다량의 범위를 자주 처리해야하는 경우
  • 특정 범위의 데이터만 자주 처리하는 경우
  • 요약/집계 정보가 자주 요구되는 경우






📌 6일차 (서브쿼리)

하나의 SQL 문안에 포함되어 있는 또 다른 SQL 문

  • SELECT 절 -FROM 절 -WHERE 절 -HAVING 절 -ORDERBY 절
  • INSERT 문의 VALUES 절 - UPDATE 문의 SET 절

  • 동작 방식에 따른 분류 : 비연관 연관
  • 반환 형태 : 단일 행(항상 비교 연산자), 다중 행(다중행 비교연산자), 다중 칼럼(동시 비교xxx)
    exist 문, 스칼라, 인라인 뷰, HAVING 절, UPDATE 문, INSERT 문

0개의 댓글