IT강의/데이터베이스 12

데이터의 가공 및 처리

이번 시간에는 데이터의 가공에 대해 살펴보겠습니다. 먼저 데이터의 가공 과정을 그림으로 요약하면 아래와 같습니다. 자료(Data): 단순한 데이터 또는 그 데이터들을 모아 둔 형태 정보(Information): 자료를 특정한 목적을 위해 가공한 형태 ex1) - 자료: 내일 강수확률: 99% - 정보: 내일은 비가 올 확률이 99%이므로 꼭 우산을 챙기시기 바랍니다. ex2) - 자료: 철수의 병원 방문 날짜: 1/1, 1/3, 1/5, ... , 1/31, ... - 정보: 철수는 항상 홀수 날에 병원을 방문합니다. 데이터마이닝 (Data Mining) - 데이터(자료)들의 통계적 규칙이나 패턴을 분석하여 가치있는 정보를 추출하는 과정 - 수많은 자료를 가공해서 정보를 얻는 과정이라고 이해하시면 됩니다..

키의 종류 (슈퍼키, 후보키, 기본키, 대체키, 외래키)

이번 시간에는 키의 종류에 대해 알아보겠습니다. 인터넷에서 찾아보면 키의 개념을 설명해주는 글들이 나와있지만 설명이 어렵고 추상적인 것이 많아 처음 보는 사람들은 이해하기 어려울 것 같습니다. 그래서 이 게시글을 안 올릴 수가 없더라구요 ㅋㅋㅋ 그래서 키의 종류를 알아보고 쉽게 풀어서 설명해드릴려고 합니다. 우선 아래와 같이 테이블이 있다고 가정하고 설명하겠습니다. (1) 슈퍼키 (Super Key) - 각 행을 유일하게 식별할 수 있는 속성들의 집합입니다. - 서로 구분만 할 수 있다면 '슈퍼키'라고 할 수 있습니다. - 위의 테이블로 예시: - [학번] (O) : 학번만 가지고 학생들을 구분할 수 있으므로 슈퍼키가 맞습니다. - [주민등록번호] (O) : 주민등록번호만 가지고도 학생들을 구분할 수 있..

부서 별 최고 급여를 직원명과 함께 출력

1. 문제 정의 Employee(Id, Name, Salary, DepartmentId) Department(Id, Name) 위의 테이블에서 부서 별로 급여를 가장 많이 받는 직원을 부서명, 직원명, 최고급여 순으로 출력시키시오. 2. 문제 해결 방안 (1) 부서 ID로 그룹핑해서 부서 ID와 부서 별 최고 급여를 가진 테이블을 생성합니다. (2) 위의 테이블을 Employee 테이블의 급여와 부서ID로 조인합니다. 최고 급여를 가진 직원의 이름을 찾아야하기 때문입니다. (3) 추가로 Department 테이블의 ID하고도 조인합니다. 부서명을 찾아야하기 때문입니다. (4) 부서명, 직원명, 최고급여 순으로 출력시킵니다. 3. 소스 코드

세 번 연속적인 숫자 출력

1. 문제 정의 Logs(Id, Num) 테이블에서 세 번 연속적인 숫자들을 출력시키시오. 예를 들어 (1,4), (2,4), (3,4) 이면 Id가 1, 2, 3일 때 모두 Num이 4이므로 세 번 연속이니까 4를 출력시켜야 합니다. 2. 문제 해결 방안 (1) Logs 테이블 3개를 카티션 곱 합니다. (2) 숫자는 모두 같지만 ID는 1씩 증가하는 행을 골라냅니다. 세 번 연속이라는 것은 ID가 세 번 증가했음에도 숫자가 서로 같다는 뜻이기 때문입니다. (3) 숫자만 골라서 출력시킵니다. 3. 소스 코드

중복되는 메일 주소 출력

1. 문제 정의 Person(Id, Email) 테이블에서 2개 이상 중복되는 메일 주소를 모두 출력시키시오. 2. 문제 해결 방안 (1) Person 테이블끼리 카티션 곱을 합니다. (2) 메일 주소는 같지만 ID는 다른 행을 골라냅니다. 중복된다는 것은 서로 다른 사람인데 메일 주소가 같은 경우이기 때문입니다. (3) 메일 주소만 골라서 출력시킵니다. 3. 소스 코드

트랜잭션의 4가지 특징: ACID

트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 이번 게시글에서는 트랜잭션의 4가지 특징에 대해 알아보겠습니다. 트랜잭션의 핵심적인 특징 이라고 하는데요. 줄여서 'ACID' 라고 부릅니다. 트랜잭션은 아래와 같이 4가지 특징을 가지고 있습니다. (1) 원자성 (Atomicity) - 트랜잭션과 관련된 작업들은 부분적으로 실행되다가 중단되지 않는 것을 보장한다는 의미입니다. - '완전히 실행되거나 또는 아예 실행되지 않는다' 라고 이해하시면 됩니다. - 예를 들어 계좌로 돈을 보내는 중에 연결이 끊겼다면 이 작업은 아예 철회되어야 합니다. (2) 일관성 (Consistency) - 트랜잭션이 실행을 ..

2018년도 정보처리기사 실기 2회 문제풀이 및 해설 - 5. SQL 쿼리문

※ 문제의 내용은 제 기억에 의해 복구된 것이므로 기존 시험문제랑 완전히 똑같지는 않습니다. 그냥 참고용으로만 봐주시기 바랍니다. 다음 내용에서 빈칸 (1) ~ (5) 을 채우시오. DCL은 데이터의 보안, 무결성, 회복, 병행제어 등을 정의하는 데 사용하는 언어입니다. DCL은 일반 사용자보다는 데이터베이스 관리자가 사용하는 언어입니다. (1) 은 데이터베이스 조작 작업이 정상적으로 종료되었을 때 트랜잭션의 모든 변경 내용들을 데이터베이스에 반영하는 DCL 명령어입니다. (2) 은 데이터베이스 조작 작업이 비정상정으로 종료되었을 때 변경된 모든 내용을 취소하고 데이터베이스를 원래의 상태로 복구하는 명령어입니다. 이것은 오류 동작 이후에도 깨끗한 사본으로 복원시킬 수 있기 때문에 무결성을 위하여 중요합니..

2018년도 정보처리기사 실기 2회 문제풀이 및 해설 - 4. 데이터베이스 이론

※ 문제의 내용은 제 기억에 의해 복구된 것이므로 기존 시험문제랑 완전히 똑같지는 않습니다. 그냥 참고용으로만 봐주시기 바랍니다. 다음 내용에서 빈칸 (1) ~ (8) 을 채우시오. 관계 대수는 컴퓨터 과학의 관계형 데이터베이스의 관계 모델에서 집합론과 1차 논리에 기반하여 관계로 표현된 데이터를 취급하는 대수적인 연산 체계를 말합니다. 관계 대수에서는 아래와 같은 연산자들이 사용됩니다. 1. 합집합 - 2개의 테이블에 있는 튜플(데이터 행)을 서로 결합하는 연산자입니다. - 기호: (1) 2. 교집합 - 2개의 테이블을 비교했을 때 서로 같은 튜플만 남겨 놓는 연산자입니다. - 기호: (2) 3. 차집합 - 왼쪽 테이블 내의 튜플들을 기준으로 오른쪽 테이블 내에 있는 튜플들을 제거하는 연산자입니다. -..

DB 연동 및 SQL 응용 - JDBC

지난 시간에 SQL 쿼리문의 문법을 상세히 살펴보았다면, 이번 시간에는 SQL을 프로그램에서 실제로 응용해보는 시간을 가질 것입니다. 다시 말해, DB와 프로그램을 서로 연동하는 것을 해보겠다는 뜻입니다. JDBC(Java Database Connectivity)는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API 입니다. 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공합니다. 전체 소스코드는 위와 같습니다. 가독성을 높이기 위해 이미지로 제시하였습니다. 위의 소스코드는 맨 밑에서 다운받으실 수 있습니다. 그렇다면 위의 소스코드를 하나하나씩 살펴보겠습니다. 1) Class.forName("com.mysql.jdbc.Driver"); JDBC 드라이버를 설정해줍니다. 저의 경우 MySQ..

SQL - 데이터 조작어

지난 시간에 SELECT문의 문법을 하나하나 살펴보았습니다. 그리고 DDL, DML, DCL의 간략한 정의를 살펴보았구요. 이번 시간에는 데이터베이스 언어 중 DML을 자세히 살펴볼 것입니다. DML (Data Manipulation Language, 데이터 조작 언어) 테이블 내에 데이터를 삽입(INSERT), 수정(UPDATE), 조회(SELECT), 삭제(DELETE)하거나 테이블에 잠금을 설정하거나 (LOCK TABLE), SQL문의 처리 절차에 대한 정보를 얻거나 (EXPLAIN PLAN), PL/SQL 모듈을 호출하는 작업(CALL) 등을 수행하는 명령문이 있습니다. 위의 테이블을 기준으로 설명해나가겠습니다. (1) 삽입 - INSERT 테이블 내에 데이터를 삽입합니다. INSERT INTO ..

728x90
반응형
LIST