반응형
개발자로 일하기 위해 필요한 용어 정리 및 간단한 CS지식입니다.
CS지식 및 면접 질문입니다.
예를 들어서
-클러스트와 넌클러스트가 무엇인가요?
-SQL이 무엇인가요?
라고 했을때 대답을 할수 있어야 합니다.
SQL이 무엇이냐는 질문에
1. DB를 할때 쓰는 문법입니다.
2. DB를 사용할때 데이터베이스에 접근할수 있도록 하는 데이터베이스 하부언어로 DDL,DML,DCL이 있습니다. DDL은 어쩌구~~~
1번 대답보단 2번 대답이 더 좋겠죠?
반응형
내용은 점차 추가하겠습니다.
데이터베이스 | |
[SQL] | |
//---------------------------------------------------------------//. | |
데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)을 포함한 데이터베이스용 질의 언어의 일종으로 | |
데이터베이스를 사용할때 데이터베이스에 접근할 수 있도록 하는 데이터베이스 하부언어 이다. | |
//---------------------------------------------------------------//. | |
[테이블] | |
//---------------------------------------------------------------//. | |
테이블 : 행과 열로 이루어진 데이터의 집합이다. | |
RDB에서는 테이블을 릴레이션이라고도 한다. | |
모든 릴레이션은 테이블이지만, 모든 테이블은 릴레이션이 아니다. | |
-> 조건이 충족 되어야 한다. | |
1. 모든 값을 유일한 값을 가진다. | |
2. 하나의 릴레이션에는 중복되는 행이 존재해서는 안된다. | |
//---------------------------------------------------------------//. | |
[ROW] | |
//---------------------------------------------------------------//. | |
행 : 테이블을 구성하는 데이터의 가로로 묶은 데이터셋을 의미한다. | |
행은 한 객체에 대한 정보를 가지고 있다. | |
튜플 또는 레코드 라고한다. | |
//---------------------------------------------------------------//. | |
[Colum] | |
//---------------------------------------------------------------//. | |
열 : 테이블을 구성하는 데이터의 세로를 묶은 데이터셋을 의미한다. | |
열을 구성하는 값은 같은 도메인으로 되어 있다. | |
속성이라고도 한다. | |
//---------------------------------------------------------------//. | |
[인덱스] | |
//---------------------------------------------------------------//. | |
인덱스 : 데이터베이스 테이블의 검색속도를 향상시키기 위한 자료구조이다. | |
인덱스의 단점 : 인덱스를 구축하는 비용 발생. | |
추가,삭세,수정 연산시 인덱스를 형성하기 위한 추가 연산이 필요하다. | |
//---------------------------------------------------------------//. | |
[클러스터 인덱스와 넌클러스트 인덱스]. | |
//----------------------------------------------------------------//. | |
클러스터 : 디스크로부터 데이터를 읽어오는 시간을 줄이기 위해 조인이 자주 사용되는 테이블의 데이터를 디스크의 같은 위치에 저장 시키느 방법. | |
-클러스터 인덱스. | |
하나의 테이블에 한개만 생성이 가능하다. | |
조회는 빠르지만, 수정 삽입 삭제는 느리다. | |
물리적으로 행을 재배열한다. | |
인덱스 페이지 용량이 넌클러스터 보다 작다. | |
-넌클러스터 인덱스. | |
하나의 테이블의 여러개 생성이 가능하다. | |
조회는 느리지만, 수정 삽입 삭제가 빠르다. | |
물리적으로 재배열을 하지 않는다. | |
인덱스 페이지 용량이 클러스터 인덱스 보다 크다. | |
//----------------------------------------------------------------//. | |
[View] | |
//---------------------------------------------------------------//. | |
View : 물리적인 테이블을 근거한 논리적인 가성 테이블 | |
특징: 보안에 유리하고 , 복잡하고 긴 쿼리문을 뷰로 정의하면 단순화 할수 있다. | |
//---------------------------------------------------------------//. | |
[rollback 과 commit] | |
//---------------------------------------------------------------//. | |
rollback과 commit은 insert,update,delete문을 사용했을때 사용하는 쿼리문이다. | |
rollback은 데이터를 수행전으로 되돌리고 싶을때 사용을 한다. | |
commit은 쿼리문을 수행후 해당 결과에 대해 확정 하는 것이다. | |
//---------------------------------------------------------------//. | |
[트랜잭션] | |
//---------------------------------------------------------------//. | |
트랜잭션이란 : 데이터베이스의 상태를 변화시키는 하나의 논리적인 작업단위 | |
트랜잭션은 성공하려면 성공해야하고, 실패하려면 전부 실패 해야한다. | |
//---------------------------------------------------------------//. | |
[정규화] | |
//---------------------------------------------------------------//. | |
정규화 : 데이터의 중복을 방지하고, 무결성을 충족하기 위해 DB를 설계하는 것을 의미한다. | |
정규화를 하지 않으면 이상현상이 발생하는데 이를 없애고자 한다. | |
이상현상에는 삽입이상, 삭제이상, 삽입이상이 있다. | |
//---------------------------------------------------------------//. | |
[스키마] | |
//---------------------------------------------------------------//. | |
스키마 : 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터의 집합이다. | |
(자료의 구조, 자료의 표현 방법, 자료 간의 관계) | |
외부 스키마 : 사용자 입장에서 정의한 논리적 구조 | |
개념 스키마 : 조직체 전체입장에서 DB를 정의한 스키마 | |
내부 스키마 : 어떻게 저장될지에 대한 명세 | |
//---------------------------------------------------------------//. | |
[RDBMS 와 NoSQL] | |
//---------------------------------------------------------------//. | |
RDBMS : 정형데이터를 저장한다. | |
연산이 가능하다. | |
각각의 속성과 값을 가진 테이블들은 서로 관계를 맺으며 존재한다. | |
데이터의 분류, 탐색, 정렬의 속도가 비교적 빠르다. | |
NoSQL : 비정형데이터를 저장한다. | |
연산이 불가능하다. | |
데이터와 테이블간의 관계를 정의하지 않는다. | |
스키마가 정해져 있지 않아, 데이터에 대한 규격화가 되어 있지 않다. | |
//---------------------------------------------------------------//. | |
[키] | |
//---------------------------------------------------------------//. | |
기본키 : 유일하게 식별가능한 키로, null이 될수 없고 최대한 적은 속성을 가져야한다. | |
외래키 : 다른 릴레이션을 참조하는 속성을 말한다. 참조되고 참조하는 릴레이션의 도메인이 같아야한다. | |
//---------------------------------------------------------------//. | |
[ACID] | |
//---------------------------------------------------------------//. | |
원자성 : 트랜잭션의 모든 연산은 완벽하게 실행되어야 하며, 실패하면 트랜잭션은 실패해야 한다. | |
일관성 : 트랜잭션은 유효한 상태로만 변경할 수 있다. | |
고립성 : 하나 이상의 트랜잭션이 동시에 실행될 경우 다른 트랜잭션에 영향을 받지 않고 독립적으로 실행해야 한다. | |
내구성 : 트랜잭션이 커밋이 되었을때, 시스템 오류가 생겨도 커밋된 상태를 유지해야 한다. | |
//---------------------------------------------------------------//. | |
[트리거] | |
//---------------------------------------------------------------//. | |
트리거 : 자동으로 실행도록 정의된 프로시저이다. INSERT DELETE UPDATE에 대한 응답으로 자동 호출한다. | |
업무 자동화를 하고 무결성을 강화하기 위해 사용한다. | |
//---------------------------------------------------------------//. | |
[Dead Lock] | |
//---------------------------------------------------------------//. | |
데드락 : 두 개이상의 트랜잭션이 특정 자원의 잠금을 획득한 채 다른 트랜잭션이 소유하고 있는 잠금을 요구하면 아무리 기다려도 | |
상황이 바뀌지 않는 상태 | |
빈도 낮추는 방법 | |
1. 트랜잭션을 자주 커밋 | |
2. 정해진 순서로 테이블 접근 | |
//---------------------------------------------------------------//. | |
[참조 무결성] | |
//---------------------------------------------------------------//. | |
기본키와 참조키간의 관계가 항상 유지됨을 보장한다. | |
참조되는 테이블의 행을 이를 참조하는 참조키가 존재하는 한 삭제 할수 없고, 기본키도 변경할 수 없다. | |
//---------------------------------------------------------------//. | |
[JOIN] | |
//---------------------------------------------------------------//. | |
JOIN은 서로 다른 테이블에서 하나의 결과를 도출 할때 사용하는 방법이다. | |
INNER JOIN : 키값이 있는 테이블의 컬럼 값을 비교후 조건에 맞는 값을 가져온다. | |
OUTER JOIN : 조인하는 여러 테이블에서 한쪽에 데이터가 있고, 한쪽에 없는 경우 데이터가 있는 쪽 테이블의 내용을 전부 출력하는 방법이다. | |
CROSS JOIN : 조인되는 두 테이블을 곱집합을 반환한다. | |
//---------------------------------------------------------------//. |
반응형
'CS지식' 카테고리의 다른 글
[신입 개발자 면접질문] 개발 면접 마지막으로 하고싶은말? (0) | 2022.01.21 |
---|---|
[네트워크 지식] Network 기본 지식 및 면접 예상 질문 (0) | 2022.01.19 |
[CS지식] 절차지향 vs 객체지향 (0) | 2021.07.01 |
[신입 개발 지식] REST API란? (0) | 2021.05.20 |
[통신] Socket 과 HTTP 란? (0) | 2021.05.20 |