[알고리즘] 삽입 정렬(Insertion Sort)
·
CS 지식/[알고리즘]
삽입 정렬 2번째 원소부터 시작하여 그 앞(왼쪽)의 원소들과 비교하여 삽입할 위치를 지정한 후, 원소를 뒤로 옮기고 지정된 자리에 자료를 삽입 하여 정렬하는 알고리즘 순서에 맞게 삽입 시키는 정렬 평균과 최악 모두 수행 시간 복잡도는 O(n2) Process (Ascending) 정렬은 2번째 위치(index)의 값을 temp에 저장 temp와 이전에 있는 원소들과 비교하며 삽입 '1'번으로 돌아가 다음 위치(index)의 값을 temp에 저장하고, 반복 void insertionSort(int[] arr) { for(int index = 1 ; index < arr.length ; index++){ // 1. int temp = arr[index]; int prev = index - 1; while( ..
[데이터베이스] 데이터베이스 무결성
·
CS 지식/[데이터베이스]
무결성 보장 방법 데이터를 조작하는 프로그램 내에서 데이터 생성, 수정, 삭제 시 무결성 조건을 검증 데이터베이스 무결성 테이블에 있는 모든 행들이 유일한 식별자를 가질 것을 요구함(같은 값 X) 외래키 값은 NULL이거나 참조 테이블의 PK 값이어야 함 한 컬럼에 대해 NULL 허용 여부와 자료형, 규칙으로 타당한 데이터 값 지정
[데이터베이스] DBMS
·
CS 지식/[데이터베이스]
DBMS(데이터베이스 관리 시스템) 다수의 사용자가 데이터베이스 내의 데이터를 접근할 수 있도록 설계된 시스템 DBMS의 기능 1) 정의 기능(DDL : Data Definition Language) 데이터베이스가 어떤 용도이며 어떤 식으로 이용될 것이라는 것에 대한 정의가 필요함 CREATE, ALTER, DROP, RENAME 2) 조작 기능(DML : Data Manipulation Language) 데이터베이스를 만들었을 때 그 정보를 수정하거나 삭제 추가 검색 할 수 있어야 함 SELECT, INSERT, UPDATE, DELETE 3) 제어 기능(DCL : Data Control Language) 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령 GRANT REVOKE
[데이터베이스] 트랜잭션(Transaction)
·
CS 지식/[데이터베이스]
트랜잭션 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 - SELECT - INSERT - DELETE - UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. * 이때 DB 작업 - 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 - 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를 변경 현재 작업 단위 : 출금 UPDATE문 + 입금 UPDATE문 → 이를 통틀어 하나의 트랜잭션이라고 한다. - 위 두 쿼리문 모두 성공적으로 완료되어야만 "하나의 작업(..
[데이터베이스] 정규화(Normalization)
·
CS 지식/[데이터베이스]
정규화 테이블 간 증복된 데이터를 허용하지 않는 것 중복된 데이터를 만들지 않으면, 무결성을 유지할 수 있고, DB 저장 용량 또한 효율적으로 관리할 수 있음 목적 데이터의 중복을 없애면서 불필요한 데이터를 최소화 시킴 무결성을 지키고, 이상 현상을 방지 테이블 구성을 논리적이고 직관적으로 할 수 있음 데이터베이스 구조 확장 용이 제 1정규화(1NF) 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분리시키는 것 조건 - 어떤 릴레이션에 속한 모든 도메인이 원자값만으로 되어 있어야함 - 모든 속성에 반복되는 그룹이 나타나지 않음 - 기본키를 사용하여 관련 데이터의 각 집합을 고유하게 식별할 수 있어야 함 현재 테이블은 전화번호를 여러 개 가지고 있어 원자값이 아님 따라서 1NF에 맞추기 위해 아래와 ..
[데이터베이스] 인덱스(Index)
·
CS 지식/[데이터베이스]
DB Index 목적 : RDBMS에서 검색 속도를 높이기 위한 기술 Table의 Column을 색인화 함 (따로 파일로 저장) → 해당 Table의 Record를 Full scan 하지 않음 → 색인화 된 (B+ Tree 구조로) Index 파일 검색으로 검색 속도 향상 과정 : Table을 생성하면, MYD, MYI, FRM 3개의 파일이 생성됨 FRM : 테이블 구조가 저장되어 있는 파일 MYD : 실제 데이터가 있는 파일 MYI : Index 정보가 들어가 있는 파일 → Index를 사용하지 않는 경우, MYI 파일은 비어져 있음 그러나, 인덱싱하는 경우 MYI 파일이 생성됨 이후에 사용자가 Select 쿼리로 Index를 사용하는 Column을 탐색 시, MYI 파일의 내용을 검색함 단점 Ind..