Major`(171)
-
[Data Structure] 하노이탑 (Recursion)
하노이 탑 (The Tower of Hanoi) - 원판은 1번에 1개씩만 옮겨야 한다 - 맨 위에 있는 원판만 이동 가능 - 작은 원판 위에 큰 원판을 올려 놓을 수 없다 n개가 존재하고 막대가 3개 (A, B, C)일 경우 n-1개의 원판을 B로 옮기고 맨 밑에 1개의 원판을 C로 옮기고 B에 있는 n-1개의 원판을 C로 옮기면 된다 ※ 코드 구현 #include void hanoi(int n, char from, char tmp, char to) { /* n = 원판의 개수 from = 시작 지점 tmp = 경유 지점 to = 도착 지점 */ /* 1. n-1개의 원판을 경유 지점에 잠시 놓는다 (여기서의 경유 지점 = to) 2. 맨밑에 있는 1개의 원판을 최종 도착지점에 옮긴다 (여기서의 경유 ..
2021.11.30 -
[컴퓨터구조] 컴퓨터의 기본 구조
컴퓨터 시스템 하드웨어 (Hardware) - 컴퓨터에서 각종 정보의 전송 통로 제공 - 정보에 대한 처리가 실제 일어나게 해주는 물리적 실체들 - 컴퓨터의 정보처리 능력 -> 얼마나 다양한 기능들을 어느 정도의 속도로 수행해줄 수 있는지 ※ 컴퓨터 하드웨어 주요 요소 소프트웨어 (Software) - 정보들이 이동하는 방향, 정보처리의 종류를 지정 - 이러한 동작들이 수행할 시간을 지정해주는 명령(Command)들의 집합 - 하드웨어가 제공해주는 기능들을 이용하여 최종적인 결과를 얻을 수 있도록 도와줌 ≫ 시스템 소프트웨어 : OS(Window 10, Unix, Linux,...), 각종 유틸리티 프로그램들(프린터 드라이버,...) ≫ 응용 소프트웨어 : 워드프로세서, 웹브라우저, MS-Excel,....
2021.11.15 -
[DB] 정규화
정규화 (Normalization) 주어진 릴레이션 스키마가 잘못되어 이상현상이 발생하는 릴레이션 스키마를 분해하여, 이상현상이 발생하지 않는 바람직한 릴레이션 스키마로 만들어 가는 과정 이상 현상이 발생하지 않도록, 릴레이션을 관련 있는 속성들로만 구성하기 위해 릴레이션을 분해하는 과정 함수적 종속성을 판단하여 정규화를 수행 정규화의 목적 - 불필요한 데이터를 제거, 데이터의 중복 최소화 - DB 구조 확장 시, 재디자인을 최소화 - 다양한 관점에서의 query를 지원하기 위해 - 무결성 제약조건의 시행을 간단하게 하기 위해 - 각종 이상 현상을 방지하기 위해, 테이블의 구성을 논리적이고 직관적으로 한다 정규화의 필요성 - 저장공간 최소화 - 데이터 중복에 따른 데이터 불일치성 최소화 - 데이터의 삽입..
2021.10.18 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DCL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK, SAVEPOINT 문 데이터 제어어(DCL) 1. GRANT : 권한 생성 데이터베이스 관리자가 사용자에게 권한 부여 (CONNECT 권한 및 RESOURCE 권한) CONNEC..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(삽입 / 수정 / 삭제)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DDL : 생성 CREATE TABLE 고객( 고객번호 NUMBER PRIMARY KEY, 고객이름 VARCHAR2(10) NOT NULL, 나이 NUMBER NOT NULL,..
2021.10.16 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DML(검색)
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 DML : 검색 (SELECT) - 기본 문법 SELECT [DISTINCT] 속성이름 FROM 테이블이름 [WHERE 검색조건] [GROUP BY 속성이름] [HAVING 검..
2021.10.15 -
[DB] 데이터베이스 언어 SQL(Structured Query Language) - DDL
SQL 기능에 따른 분류 - 데이터 정의어(DDL : Data Definition Language) 테이블 생성, 변경, 제거 CREATE, ALTER, DROP 문 - 데이터 조작어(DML : Data Manipulation Language) 생성된 테이블에 데이터를 검색, 삽입, 수정, 삭제 SELECT, INSERT, UPDATE, DELETE 문 - 데이터 제어어(DCL : Data Control Language) 사용자 접근 제어, 백업과 회복, 동시성 제어 등 GRANT, REVOKE, COMMIT, ROLLBACK 문 데이터 정의어(DDL) 1. CREATE TABLE 문 : 테이블 생성 - 기본 문법 CREATE TABLE 테이블이름 ( 속성이름 데이터타입 제약조건, 속성이름 데이터타입 제..
2021.10.14 -
[DB] ER 모델을 관계 데이터 모델로 변환
데이터베이스 시스템(DBS) 개발 단계 ER 스키마를 관계 모델 릴레이션으로 변환 [규칙 1] 개체 타입 : 강한 개체 타입 -> 사원(사원번호, 사원 이름) [규칙 2-1] 속성 : 복합 속성(Composite Attribute) -> 고객(고객 아이디, 년, 월, 일) [규칙 2-2] 속성 : 다중값 속성(Multi-Valued Attribute) - 원래 개체의 릴레이션 속성에 다중값 속성을 포함시키지 않는다 - 다중값 속성은 따로 릴레이션을 만든다 - 다중값 속성 릴레이션의 기본키 = 원래 개체의 기본키(FK) + 다중값 속성 -> 고객(고객 아이디, 고객명) -> 고객 연락처(고객 아이디(FK), 연락처) [규칙 3-1-1] 관계 타입 : 2항 관계 / 1:1 관계 ※ 관계 타입 R에 대하여 R..
2021.10.13 -
[DB] 관계 데이터 연산
관계 데이터 모델에서의 DB 언어 : 관계 데이터 모델 기반 DBMS에서 원하는 정보를 얻기 위해 사용하는 언어 1. 관계 해석(Relational Calculus) 원하는 결과를 얻기 위해, 찾기를 원하는 데이터가 무엇인지만 명시하는 비절차적 언어 2. 관계 대수(Relational Algebra) 원하는 데이터를 얻기 위해, 데이터를 어떻게 찾는지에 대한 처리과정을 명시하는 절차적 언어 구분 관계 해석 관계 대수 특징 비절차적 언어(계산 수식의 유연적 사용) 프레디킷 해석(Predicate Calculus) 기반 절차적 언어(순서 명시) 목적 무엇을 얻을 것인가?(What) 어떻게 유도하는가?(How) 종류 튜플 관계 해석, 도메일 관계 해석 순수관계 연산자, 일반집합 연산자 ※ 관계 대수나 관계 해..
2021.10.12 -
[DB] 관계 데이터 모델 (Relational Data Model)
관계 데이터 모델 (Relational Data Model) - 개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델 - 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장 기본 용어 - 릴레이션(Relation) : 행과 열로 구성된 테이블 - 행(Row) : 투플(Tuple) - 열(Column) : 애트리뷰트(Attribute) or 속성 - 테이블 : 릴레이션(Relation) - 도메인(Domain) 하나의 속성이 가질 수 있는 모든 값의 집합 속성의 특성을 고려한 데이터 타입(INT, CHAR, VARCHAR...) - 널(Null) 속성 값을 아직 모르거나 해당되는 값이 없음을 표현 숫자 0도 아니고, 공백도 아닌 값 - 차수(Degree) ≥ 1 한 릴레이션에 들어있는 속성(열)의 개수..
2021.10.12 -
[DB] 개체-관계(ER : Entity-Relationship) 모델 (2)
관계 제약조건 (참여 특성) 1. 필수적 참여 (Total Participation) 모든 개체 인스턴스가 관계에 반드시 참여 ER 다이어그램 표기법 : 이중선 2. 선택적 참여 (Partial Participation) 개체 인스턴스 중 일부만 관계에 참여해도 됨 / 참여를 안 해도 됨 ER 다이어그램 표기법 : 실선 ※ Example 1) - 1개의 학과는 여러명의 학생이 소속된다 1개의 학과에 학생이 없을 수도 있다 -> 신설학과 / 입학 전 (학과는 선택적 참여) - 1명의 학생은 반드시 1개의 학과에 소속된다 (학생은 필수적 참여) ※ Example 2) - 1명의 고객은 여러권의 책을 구매할 수 있다 고객은 반드시 책을 구매해야 한다 (고객은 필수적 참여) - 1권의 책은 여러 명의 고객이 구..
2021.10.12 -
[DB] 개체-관계(ER : Entity-Relationship) 모델 (1)
ER 모델 - DB 설계를 용이하게 하기 위해 피터 첸이 제안 데이터 모델 표기법 (ERD) Chen - 대학 교재에서 많이 이용 / 실무적으로 사용 안 함 IE/Crow's Foot - 가장 많이 사용하는 표기법 Barker - Crow's Foot을 적용하는데 일부 다름 ER 모델의 구성 요소 - 개체 (Entity) - 관계 (Relationship) 개체 (Entity) ≥ 1 - 사람, 사물, 개념, 사건과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체 - 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등 - 각 개체만의 고유한 특성이나 상대, 즉 속성을 1개 이상 가지고 있음 ※ ER 다이어그램 표기법 : 직사각형 개체 인스턴스, 개체 타입, 개체..
2021.10.11