본문 바로가기
728x90

👨‍💻Computer Science73

[Database] 04 - 3 데이터 정의어와 무결성 제약조건 데이터 정의어 스키마의 생성과 제거 - SQL2에서는 동일한 데이터베이스 응용에 속하는 릴레이션, 도메인, 제약조건, 뷰, 권한 등을 그룹화하기 위해서 스키마 개념을 지원 CREATE SCHEMA MY_DB AUTHORIZATION kim; DROP SCHEMA MY_DB RESTRICT; DROP SCHEMA MY_DB CASCADE; 릴레이션 정의 릴레이션 제거 DROP TABLE DEPARTMENT; ALTER TABLE ALTER TABLE EMPLOYEE ADD PHONE CHAR(13); 인덱스 생성 CREATE INDEX EMPDNO_IDX ON EMPLOYEE(DNO); 제약조건 CREATE TABLE EMPLOYEE ( ID NUMBER, NAME CHAR(10), SALARY NUMBE.. 2021. 10. 7.
[Database] 04 - 2 SQL 개요 SQL 개요 SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는데 중요한 요인의 하나 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL 표준을 채택함으로써 SQL이 널리 사용되는데 기여 다양한 상용 관계 DBMS마다 지원하는 SQL 기능에 다소 차이가 있음 본 책에서는 SQL2를 따름 관계 데이터 모델은 집합을 기반을 두고 있어 테이블 내에 동일한 투플을 허용하지 않지만 SQL은 이를 허용함 SQL은 비절차적 언어(선언적 언어)이므로 사용자는 자신이 원하는 바(what)만 명시하며, 원하는 것을 .. 2021. 10. 7.
[알고리즘 분석] 03 - 1 동적계획(Dynamic Programming) 동적계획 divide-and-conquer(분할정복식, 재귀) 알고리즘은 하향식(top-down) 해결법 나누어진 부분들 사이에 서로 상관관계가 없는 문제를 해결하는데 적합 피보나찌 알고리즘은 나누어진 부분들이 서로 연관이 있음. 같은 항 f(i) 를 한 번 이상 -> 비효율적 분할정복식 방법은 적합하지 않음. 동적계획법(dynamic programming)은 상향식 해결법(bottom-up approach) 분할정복식 방법과 마찬가지로 문제를 나눈 후에 나누어진 부분들을 먼 저 푼다. 인덱스를 효과적으로 설정하여 작은 문제들의 중복해결을 배제 작은 문제 해결을 먼저 결과를 큰 문제의 해결로 확산 개발 절차 (1) 재귀 관계식(recursive property) 정립 (2) 작은 사례를 먼저 해결하는 상.. 2021. 10. 2.
[Python] Python numpy, matapotlib 라이브러리 설치 no module named 'matplotlib' 문제해결 방법 pip install matplotlib을 통해 matplotlib라이브러리를 설치해줘야 합니다. 1. pip의 중요성 - matplotlib 설치 : cmd 창에 다음과 같은 명령어를 입력한다. pip install matplotlib - numpy 설치 : cmd 창에 다음과 같은 명령어를 입력한다. pip install numpy 2. pip 명령어를 실행시키면 종종 마주치는 문제 'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. *위 그림과 같이 py파일의 경로를 찾고 그 안에 있는 Scripts 파일로 경로를 이동한 후 pip를 사용해주면 문제가 해결됩니다. Numpy의 특징 대화 형.. 2021. 9. 29.
[알고리즘 분석] 02 - 3 빠른정렬(Quicksort) 빠른정렬(Quicksort) 1962년에 영국의 호아(C.A.R. Hoare)의 의해서 고안 빠른정렬(quicksort)란 이름이 오해의 여지가 있음. 왜냐하면 사실 절대적으 로 가장 빠른 정렬 알고리즘이라고 할 수는 없기 때문이다. 차라리 “분할교환정렬(partition exchange sort)”라고 부르는 게 더 정확함. 보기: 15 22 13 27 12 10 20 25 *빠른정렬 알고리즘의 수행절차. 부분배열은 네모로 둘러싸 여 있는 데 반해, 기준 아이템은 그렇지 않다. 빠른정렬 알고리즘 문제: n개의 정수를 비내림차순으로 정렬 입력: 정수 n > 0, 크기가 n인 배열 S[1..n] 출력: 비내림차순으로 정렬된 배열 S[1..n] 알고리즘: 분할 알고리즘 문제: 빠른정렬을 하기 위해서 배열 S.. 2021. 9. 23.
[Database] 04 - 1 관계 대수와 SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어 - 관계 해석(relational calculus) 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어 - 관계 대수(relational algebra) 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 관계 대수는 상용 관계 DBMS들에서 널리 사용되는 SQL의 이론적인 기초 관계 대수는 SQL을 구현하고 최적화하기 위해 DBMS의 내부 언어로서도 사용됨 SQL - 상용 관계 DBMS들의 사실상의 표준 질의어인 SQL을 이해하고 사용할 수 있는 능력은 매우 중요함 - 사용자는 SQL을 사용하여 관계 데이터베이스에 릴레이션을 정의하고, 관계 데이터베이스에서 정보를 검색하고, 관계 데이터베이스를 갱신하며, 여러 가지 무.. 2021. 9. 16.
[알고리즘 분석] 02 - 2 합병정렬(mergesort) 합병정렬(mergesort) 문제: n개의 정수를 비내림차순으로 정렬하시오. 입력: 정수 n, 크기가 n인 배열 S[1..n] 출력: 비내림차순으로 정렬된 배열 S[1..n] 보기: 27, 10, 12, 20, 25, 13, 15, 22 합병(merge) 문제: 두 개의 정렬된 배열을 하나의 정렬된 배열로 합병하시오. 입력: (1) 양의 정수 h, m, (2) 정렬된 배열 U[1..h], V[1..m] 출력: U와 V에 있는 키들을 하나의 배열에 정렬한 S[1..h+m] 시간복잡도 분석 합병 알고리즘의 최악의 경우 시간복잡도 분석 단위연산: U[i]와 V[j]의 비교 입력크기: 2개의 입력 배열에 각각 들어 있는 항목의 개수: h와 m 분석: i = h+1이고, j = m인 상태로 루프(loop)에서 빠.. 2021. 9. 16.
[알고리즘 분석] 02 - 1 분할정복법(divide-and-conquer) 분할정복(Divide-and-Conquer)식 설계 전략 분할(Divide): 해결하기 쉽도록 문제를 여러 개의 작은 부분으로 나눈다. 정복(Conquer): 나눈 작은 문제를 각각 해결한다. 통합(Combine): (필요하다면) 해결된 해답을 모은다. 이러한 문제 해결 방법을 하향식(top-down) 접근방법이라고 한다. 이분검색(binary search): 재귀적 방식 - 문제: 크기가 n인 정렬된 배열 S에 x가 있는지를 결정하라. - 입력: 자연수 n, 비내림차순으로 정렬된 배열 S[1..n], 찾고자 하는 항목 x - 출력: location, x가 S의 어디에 있는지의 위치. 만약 x가 S에 없다 면 0 - 설계전략: x가 배열의 중간에 위치하고 있는 항목과 같으면, x 찾음. 그렇 지 않으면:.. 2021. 9. 16.
[Database] 02 - 4 무결성 제약조건 데이터 무결성(data integrity) 데이터의 정확성 또는 유효성을 의미 일관된 데이터베이스 상태를 정의하는 규칙들을 묵시적으로 또는 명시적으로 정의함 데이터베이스가 갱신될 때 DBMS가 자동적으로 일관성 조건을 검사하므로 응용 프로그램들은 일관성 조건을 검사할 필요가 없음 도메인 제약조건(domain constraint) 각 애트리뷰트 값이 반드시 원자값이어야 함 애트리뷰트 값의 디폴트 값, 가능한 값들의 범위 등을 지정할 수 있음 데이터 형식을 통해 값들의 유형을 제한하고, CHECK 제약 조건을 통해 값들의 범위를 제한할 수 있음 SQL2는 도메인을 명시적으로 정의하는 것을 허용하지만, 오라클은 지원하지 않음 기본 키와 엔티티 무결성 제약조건(entity integrity constraint).. 2021. 9. 14.
728x90