전체 글
-
[DB] Mysql C/C++ 함수 연동데이터베이스 2020. 12. 6. 17:03
외부언어로 함수/프로시져 연동 C/C++ 같은 언어로 함수를 만들어 SQL 과 연동하는 것도 가능함 이로인해 다양한 표현이 가능해짐 단점 코드 자체가 DB 시스템 내로 로딩/실행되므로 무거움 DB 시스템이 마비될 우려 허용되지 않은 데이터 접근으로 인한 보안 문제 Sandbox 기법 오브젝트 코드를 Sandbox 내부에서만 실행하게하여 허용되지 않은 접근을 차단 Seprate process 기법 아예 새로운 프로세스를 만들어 Object code 를 수행하고, IPC 를 통해 결과만 전달 받는 방식 Procedure CREATE PROCEDURE deptCountProc (in deptName varchar(20), out count INTEGER) LANGUAGE C EXTERNAL NAME ‘/usr..
-
[DB] Mysql 프로시져데이터베이스 2020. 12. 6. 16:57
Procedure(프로시져) SQL 문에 assignment, if-else, for loop 와 같은 절차적인 요소를 넣기 위해 고안된 개념 SQL/PSM (Persistent Stored Module) : 함수나 프로시져를 미리 정의해두고 DBMS 내부에 저장해둔 뒤 call 만 하는 방식 장점 Encapsulation : 사용자가 내부 구현을 알지 못해도 됨 Low network traffic : 웹 클라이언트를 거치지 않음 Delegating access right : 테이블 권한은 없더라도 프로시져 호출 권한만으로 해당 테이블에 접근 가능 프로시져는 여러개의 out 을 정의하는 것이 가능함 정의 CREATE PROCEDURE profCountProc (in deptName varchar(20),..
-
[DB] Mysql 함수 정의 및 사용데이터베이스 2020. 12. 6. 16:54
Function(함수) 프로시져와 비슷하지만 함수의 경우 특별한 데이터 타입으로 특별한 연산을 할 때 더 용이함 예) 지도타입에서 지도 상의 두 영역이 겹치는지 판단하는 연산…! Scalar Function 리턴 값이 scalar 인 함수 학과 내의 교수의 수를 알아내는 함수 CREATE FUNCTION profCount(deptName varchar(20)) RETURNS INTEGER BEGIN DECLARE pCount INTEGER; SELECT COUNT(*) INTO pCount FROM professor WHERE professor.deptName = profCount.deptName; return pCount; END; 위와 같이 파라미터에 접근할 때 {함수이름.파라미터} 의 형태로 사용하..
-
[DB] Mysql Date 타입, 사용자정의 타입, 도메인, Large Object데이터베이스 2020. 12. 6. 16:05
DateType date : 날짜(년월일) : 2020-12-31 time : 시간(시분초) : 09:00:03.33 timestamp : 날짜 + 시간 : 2020-12-31 09:00:03.33 interval : 시간 간격 : date/time/timestamp 에 시간단위로 덧셈/뺄셈 연산을 하기 위함 User-Defined Types CREATE TYPE Dollars as NUMERIC (12,2) FINAL; Final 키워드가 붙으면 해당 타입을 통해 새로운 타입을 정의할 수 없게 됨 CREATE TABLE Department (deptName varchar(20), budget Dollars); Domains Type 과 비슷하지만 말 그대로 정의역을 의미함 Domain 자체적으로 NOT..
-
[DB] Rank and Partition데이터베이스 2020. 12. 6. 15:37
Ranking 2, 3, 4 등을 불러오는 Mysql Query SELECT * FROM Professor ORDER BY salary DSEC LIMIT 3 OFFSET 1; ORDER BY 구문을 통해 정렬을 한 뒤 OFFSET 만큼 row 를 건너뛴 다음 LIMIT 개수만큼 출력해줌 rank() 함수 MYSQL 8버전부터 지원 : SELECT ID, RANK() over (ORDER BY gpa DESC) as sRank FROM StudentGrade ORDER BY sRank; MYSQL 8 이전 버전: SELECT ID (SELECT COUNT(*) FROM StudentGrade B WHERE A.gpa < B.gpa) AS sRank FROM SutdentGrade A ORDER BY sR..
-
[인공지능] Tree structured CSP인공지능 2020. 12. 5. 21:32
Tree structured CSP Constraint tree : 모든 변수에 대해서 임의의 두 변수를 잇는 경로가 1개만 존재하는 Graph Tree structured CSP 는 변수의 개수 n에 대해 선형시간에 해결 가능 DAC(Directed Arc Consistency) 변수 X 가 X1, X2, X3, … , Xn 순서로 나열되어 있을 때 i < j 인 모든 i, j에 대해서 Xi 가 Xj 에 대해 arc consistent 하다면 DAC Tree 는 변수들간의 순서를 정해주기 편리함 Topological sort (위상정렬) 아무 변수나 Root 로 지정하고, 상하관계를 만들어주는 단순한 방식 B 를 Root 로 선정한 방식 Time complexity : O(n) 이렇게 만들어진 Topo..
-
[인공지능] CSP Backtracking 탐색인공지능 2020. 12. 5. 20:36
Backtracking search d : Domain 의 개수 n : 변수의 개수 d^n 개의 leaf node 수가 필요 Backtracking : DFS 방식으로 searching 하다가 오답임이 확정되면 더 깊이 들어가지 않고 돌아 나오는 기법 문제에 특화된(specific) heuristic 이 아닌 일반적인 heuristic 이 사용됨 값이 할당되지 않은 변수를 찾을 때 사용하는 hueristic SA 를 해결할까? Q를 해결할까? 고민하는 단계를 말함 MRV(Minumum-Remaining-Values) heuristic : fail first 변수에 들어갈 수 있는 Domain 의 수가 몇개 안남아서 실패를 빨리 찾게해주는 기법 Degree heuristic 차수(연결된 간선의 수) 가 높..