* ER 모델링에서 엔티티란 무엇이고 엔티티를 구성하는 애트리뷰트의 종류에는 무엇이 있을까요? 
	엔티티 : 실세계에서 독립적으로 존재하는 실체 
    애트리뷰트 유형 
    	복합 애트리뷰트(Composite) : 애트리뷰투의 집합
        단순 애트리뷰트(Simple) : 원자 애트리뷰트
        단일 값 애트리뷰트(Single value) : 애트리뷰트 하나는 하나의 값을 가짐
        다치 애트리뷰트(Multi-valued) : 애트리뷰트 하나가 여러 값을 가질 수 있음
        저장된 애트리뷰트(Stored) : DB에 실제로 저장된 애트리뷰트
        유도된 애트리뷰트(Derived) : 실제 저장되어 있지 않음(다른 애트리뷰트에 의해 그 값이 유도될 수 잇는 애트리뷰트)

* 밑줄 친 애트리뷰트는 무엇을 의미하나요? 이러한 애트리뷰트가 가져야 하는 특징이 무엇일까요?
	키 애트리뷰트 : 각 엔티티마다 서로 다른 값을 가지는 애트리뷰트 
    
* 이진 관계(Binary relationship)는 몇 개 엔티티 간의 관계를 나타낼까요? - 2개

* 그리고 이러한 이진 관계에는 1:1, 1:N, M:N의 카디날리티 비율이 있을 수 있는데,  그 의미를 설명하고 각각에 대한 예제를 들 수 있나요?

*개체, 개체 집합, 애트리뷰트, 키

	ER 모델 : 엔티티(실세계에서 독립적으로 존재하는 실체) - 관계 - 속성(애트리뷰트)(엔티티를 기술하는 속성)
    
    
        
    NULL 값 : 적용할 수 없음이라는 의미, 알려지지 않음의 의미
*관계 모델에서 삭제 연산은 참조 무결성 제약 조건을 위반할 수 있습니다. 어떠한 경우에 참조 무결성 제약 조건이 위반되는지 설명할 수 있나요? 이러한 위반이 발생할 경우에 취할 수 있는세 가지 옵션은 무엇일까요
		부모 테이블에서 튜플을 삭제할때 이를 참조하는 자식 테이블의 외래키가 존재할때 참조 무결성 제약조건을 위반한다.
        -삭제를 거부
        -삭제되는 투플을 참조하는 투플들까지 모두 삭제(연쇄 삭제)
        -삭제되는 투플을 참조하는 투플들에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경
*도메인 : 애트리뷰트가 가질수 잇는 원자값들의 집함(eX : 15~80사이의 사원들의 나이)
*데이터 타입 : 도메인은 실제 데이터 타입으로 명시함
*릴레이션 스키마 : 릴레이션 이름 R과 애트리뷰트 A들의 집합으로 표기함
	릴레이션의 차수 : 릴레이션의 애트리뷰트 개수(STUDENT(Name, SSN, BirthDate, Address) 릴레이션의 차수 = 4)
    릴레이션의 특성 
    	1.릴레이션에서의 투플의 순서(순서,중복 중요 x) : 집합에서 원소의 순서가 무의미한 것과 마찬가지로 투플의 순서 역시 의미가 없음
        
    

*관계 모델 제약 조건
	1. 도메인 제약 조건 : 속성 값은 도메인에 속해야함
    	- 각 애트리뷰트 A의 값은 반드시 A의도메인 domain(A)에속하는 원자값이어야 함
    2. 키 제약 조건 : 모든 튜플은 유일해야 함
    	-릴레이션은 투플의 집합으로 정의되므로, 모든 원소는 중복되어서는 안됨
        -기본키
    3. NULL에 대한 제약 조건 : NULL이 허용되지 않은 경우 NULL이면 안됌
    	-애트리뷰트 값으로 널을 허용하지 않는 경우, 애트리뷰트는 널을 가질 수 없음
    4. 엔티티 무결성 제약 조건 : 기본키가  NULL일수없음
    	-기본키가 각 투플들을 식별하는 데 이용되기 때문에 어떠한 기본 키 값도 널 값을 가질 수 없다는 제약 조건임, 기본키 릴레이션의 속성을 정의할 때 not null임을 명시
    5. 참조 무결성 제약 조건 : 두 릴레이션 간 기본키-외래키 참조 관계를 나타냄
    	-한 릴레이션에 있는 투플이 다른 릴레이션에 있는 투플을 참조하려면 반드시 참조되는 투플이 그 릴레이션 내에 존재해야 함
    	*삭제 연산이 참조 무결성 제약조건을 위반하는 경우 취할 수 있는 세가지 옵션
            -삭제를 거부
            -삭제되는 투플을 참조하는 투플들까지 모두 삭제(연쇄 삭제)
            -삭제되는 투플을 참조하는 투플들에서 외래키 값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경
1.SQL에서 문자열 애트리뷰트를 나타내는 CHAR(n)과 VARCHAR(n)은 어떤 차이가 있을까요? 
	char은 고정길이 문자열이고 varchar은 가변길이 문자열이다.
    
2.테이블을 생성하는 다음 CREATE TABLE 구문을 설명할 수 있나요? NOT NULL, PRIMARY KEY 등의 의미가 무엇일까요
	NOT NULL : NULL을 허용하지 않는다, PRIMARY KEY : 기본키로 지정한다(유니크(중복을 허용하지않는다)
    
*동일한 이름을 갖는 애트리뷰트의 사용하는 경우
	-서로 다른 릴레이션에서 동일한 이름을 갖는 애트리뷰트가 사용될 수 있음
    -릴레이션 이름과 함께 애트리뷰트 이름을 사용함으로써 모호함을 방지해야 함
*동일한 릴레이션을 두 번 참조하는 경우 
	- 릴레이션 이름의 별명을 애트리뷰트 이름 앞에 붙여서 사용

'학교 공부 > 데이터베이스' 카테고리의 다른 글

데이터베이스_01~_02  (3) 2024.10.04
*우리는 파일을 사용해 데이터를 저장할 수 있는데, 왜 데이터베이스를 따로 구축하고 사용해야 하는지 설명할 수 있나요
    -파일 처리 : 응용 프로그램 작성자가 데이터 구조를 결정, 데이터 공유의 개념이 없음
    -데이터베이스 : 데이터  공유의 개념이 기본임
    
*데이터, 데이터베이스, 데이터베이스 관리 시스템(DBMS)은 각기 어떤 차이가 있을까요?
    -데이터 : 의미를 가지면서 기록될 수 있는 사실
    -데이터베이스 : 서로 연관이 있는 데이터들의 모임
    -데이터베이스 관리 시스템 : 데이터베이스를 생성 관리 할수 있는 소프트웨어 패키지
    -데이터베이스 시스템 : 데이터베이스 자체와 이를 관리하는 이를 관리하는 소프트웨어를 모두 칭하는 용어

*메타 데이터(Meta data)란 무엇이고, 이를 사용하여 표현하는 자기 기술성(Self-describing) 개념은 무엇일까요?
    -메타 데이터 : 데이터베이스 자체에 대한 정보를 말함
    -자기 기술성 : 데이터베이스가 자신의 구조와 내용을 스스로 설명할 수 있는 능력을 의미합니다
    
*트랜잭션이 가져야 하는 주요 성질로 ACID가 있는데, ACID는 각기 무엇의 약어이고 어떤 기능을 의미할까요?
    -원자성(Atomicity) : 트랜잭션을 수행되거나 말거나
    -일관성(Consistency) : 데이터베이스 상태는 일관되어여 함
    -고립성(Isolation) : 트랜잭션이 마치 혼자서 수행된 것 같아야 함
    -지속성(Durability) : 한번 반영된 정보는 지속적으로 반영되어 있어야 함
    
*DBA는 무엇의 약어이며, 데이터베이스 시스템에서 어떤 역할을 하는 사람인가요?
	*데이터베이스 관리자(DBA) : 데이터 베이스 시스템의 관리를 총괄하여 책임지는 사람

*DBMS 관점에서 데이터 중복은 나쁜 개념인가요? 필요한 경우도 있을까요?
	상황에 따라 다르다, 성능 향상을 위해서 응용 프로그램 책임 하에 데이터를 중복 관리함
    
* DBMS 언어에는 대표적으로 DDL과 DML이 있습니다. DDL과 DML의 약어는 무엇이고 각 언어의 기능은 무엇일까요
    DDL(데이터 정의어)(내부 스키마를 정의함) : 개념 스키마와 내부 스키마를정의(create,Drop)
    DML(데이터 조작어)(뷰를 명시하거나 개념 스키마 사이의 사상을  나타냄) : 데이터를 검색, 삽입, 삭제, 수정하기 위한 조작 언어(select, update, insert)

*전통적인 2-층 C/S 아키텍처와 최근 많이 사용되는 3-층 C/S 아키텍처의 가장 큰 차이는 무엇인가요? 어떤 서버가 추가되어 2-층에서 3-층이 될까요?
	 2-층 C/S 아키텍처는 서버-클라이언트 구조면  3-층 C/S 아키텍처는 클라이언트-응용 서버 || 웹 서버 - 서버 구조를 띈다

*3단 스키마 아키텍처를 두는 이유는?
	논리적 데이터 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향이 끼치지 않는다
    물리적 데이터 독릾성 : 내부 스키마가 변경되어도 개념 스키마에는 영향이 끼치지 않는다.
    
*데이터베이스 특징
    프로그램과 데이터의 분리(프로그램-데이터 독립성) : 데이터 베이스 내의 저장 구조가 변경되어도 데이터베이스 응용 프로그램은 영향을 받지 않음
    데이터 추상화 : 사용자에게 맞는 개념적인 뷰 제공
    데이터에 대한 다양한 뷰 제공 : 데이터 베이스의 일부를 뷰로 정의
    데이터의 공유와 다수 사용자 트랜잭션 처리 : 여러 사용자가 동일한 데이터베이스 공유를 가능하도록 함
    메타 데이터 저장 관리
    => 이러한 특징을 잘 반영하기 위한 아키텍처 : 3단계 스키마 아키텍처
	*3단계 스키마 아키텍처의 목적 : 사용자의 응용과 물리적 데이터베이스의 분리(1단계 : 내부단계, 2단계: 개념 단계, 3단계: 외부 단계)
        내부 단계 : 내부 스키마를 가지며, 내부 스키마는 물리적 데이터 모델을 사용 
        개념 단계: 개념 스키마를 가지며. 전체를 사용자를 위한 데이터베이스 구조를 기술
        외부 단계 : 사용자 뷰들을 포함
    논리적 데이터 독립성 : 외부 스키마나 응용 프로그램을 변경하지 않으면서도 개념 스키마를 변경할 수 있는 능력, 뷰와 테이블 사이으이 독립성을 의미, 테이블 구조-내용 변경 시에도 뷰는 영향을 받지 않음
    물리적 데이터 독립성 : 개념 스키마를 변경하지 않으면서 내부 스키마를 변경할 수 있음,내부 스키마가 변경되더라도 개념 스키마는 영향을 받지 않는 능력을 의미
    장점 : 물리적 및 논리적 독립성 확보가 용이
    단점 : DBMS의 비효율성 처리


*데이터베이스 사용자의 분류
    데이터베이스 관리자 : 데이터 베이스 시스템의 관리를 총괄하여 책임지는 사람
    데이터베이스 설계자 : 데이터 베이스의 설꼐를 책임진 사람
    최종 사용자 : 데이터 베이스에 대하여 질의하고 변경하고 보고서를 작성하는 사람
    시스템 분석가-응용 프로그래머 : 초보 사용자를 위하여 잘 정의된 기능의 응용을 분석 설계하고 구현하는 사람
    무대 뒤의 사람들
    	DBMS 설계 및 구현자 : DBMS 소프트웨어 자체를 설계하고 구현하는 업무를 담당하는 사람
        도구 개발자 : 데이터베이스를 사용하는 데에 필요한 도구들을 설계하고 구현하는 사람들
        운영 및 유지 보수 요원 : 데이터베이스 시스템 운영에 필요한 HW 및 SW 운영 및 유지보수 담당 요원들
 
 *DBMS의 장점
    데이터 중복성의 제어 및 중복의 최소화 : 동잃한 데이터가 중복되어 저장되는 것을 방지 , 중복 제어를 통한 데이터의 일치성 보장, 메모리 낭비 방지
    보안 기능 : 권한 없는 사용자의 데이터 접근을 통제
    지속성 기억 공간 제공 : 프로그램 수행이 끝나더라도 관련 데이터-객체는 그 값을 저장하고 있어야함(영구 저장)
    효율적 질의처리를 위한 저장 구조 제공 : 레코드의 신속한 검색을 위해 인덱스 제공
    백업과 회복 기능 제공 : 시스템 고장 시에도 데이터의 일관성을 보장
    데이터베이스의 무결성 제약 조건의 시행 : 각 속성 값이 가져야 하는 제약 조건
    규칙을 사용한 추론과 수행 : 데이터 베이스에 저장된 사실로부터 새로운 정보를 추론
    동시성 제어 기능 제공(트랜잭션) : 여러 사용자가 동시에 DB에 접근하여 효율적으로 칠
    데이터 독립성 제공  : 쉽게 사용할수 있고, 응용 프로그램 개발이 용이함
    표준화된 데이터 관리, 응용프로그램의 개발 시간 단축, 항상 최신의 정보를 제공, 데이터 구조 변경에 따른 융통성 부여

*DBMS의 분류 기준
	데이터 모델에 따른 분류 : 관계 모델,네트워크 모델,계층 모델,객체지향 모델,객체-관계 모델
    사용자의 수에 따른 분류,사이트의 수에 따른 분류,비용에 따른 분류,접근 경로 유형에 따른 분류,범용 또는 특수 목적용,개념적 데이터 모델,논리적 데이터 모델    
*클라이언트-서버 아키텍처
	클라이언트-서버 아키텍처의 구조와 특징 : 특정 기능을 수행하는 특별한 서버를 지정, 여러 서버가 메인 프레임의 기능을 분산해서 수행
    
*기존 파일 처리시스템 대비 데이터베이스의 장점 : 표준화된 데이터 관리, 프로그램 개발의 시간 단축,실시간성, 규모의 경재성    
*DBMS 언어
	DDL(데이터 정의어) : 개념 스키마와 내부 스키마를 정의함
    DML(데이터 조작어) : 데이터를 삽입,삭제,수정,검색하기 위한 조작 언어

*데이터베이스 시스템 유틸리티 : 
	-적재  : 데이터 파일을 자동적으로 데이터베이스 파일의 형식으로 변화해서 저장함
    -백업 : 전체 데이터베이스를 백업장치에 복사하여 데이터베이스의 백업 사본을 만듦
    -파일 재조직 : 성능 향상을 위해 데이터베이스 파일 구조를 다른 파일 구조로 재조직함
    -성능 모니터링 : 사용 통계를 관리자에게 제공

'학교 공부 > 데이터베이스' 카테고리의 다른 글

데이터베이스 _03 ~ _04  (1) 2024.10.07

+ Recent posts