① 하나의 주기억장치에 여러 개의 프로그램을 동시에 처리하는 방식 ② 자료나 정보 단위들이 발생할 때마다 즉각적으로 처리하는 것이 아니라 일정량 또는 일정 기간 동안 모아 두었다가 한꺼번에 처리하는 방식 ③ CPU의 전체 사용 시간을 작은 작업 시간량으로 나누어서 그 시간량 동안만 번갈아가면서 CPU를 할당하여 각 작업을 처리하는 방식 ④ 컴퓨터 시스템에 여러 개의 프로세스(CPU)를 사용하여 처리하는 방식
<보기> ㄱ. 일괄 처리시스템 ㄴ. 다중 프로그래밍 시스템 ㄷ. 시분할 시스템 ㄹ. 다중 처리 시스템
1. 한 릴레이션에서 조건에 만족하는 튜플들의 부분 집합을 구한다 2. 한 릴레이션의 속성들의 부분집합을 구한다 3. 두 릴레이션 모두에 속한 튜플들로 이루어진 릴레이션을 생성한다 4. 두 릴레이션 중 하나의 릴레이션에는 속하지만 다른 하나의 릴레이션에는 속하지 않는 튜플들로 이루어진 릴레이션을 생성한다.
IP 프로토콜 위에서 연결형 서비스를 지원하는 프로토콜로 데이터를 세그먼트라는 블록 단위로 분할해 전송하며 전이중 방식의 양방향 가상 회선을 제공하기 때문에 신뢰성 있는 데이터 전송을 보장하며 흐름 제어 기능과 혼잡 제어 기능을 지원하여 네트워크에서의 데이터 전달 통제가 가능한 프로토콜
1. 데이터 조작어(삽입, 삭제, 수정, 검색) 요청을 분석하여 런타임 데이터베이스 처리기가 이해할 수 있도로 해석한다 2. 데이터베이스에 접근하는 과정에서 사용자의 접근 권한이 유효한지 검사하고 데이터베이스 무결성을 유지하기 위한 제약조건 위반 여부를 확인한다. 회복이나 병행 수행과 관련된 작업도 한다.
19. 다음은 Company 테이블을 생성하는 SQL문이다. company 테이블의 TITLE 속성에는 Intern, Staff, Manager, Director, President 값만 허용할 수 있도록 <SQL문> (가) 와 (나)에 적합한 단어를 쓰시오
CREATE TABLE COMPANY(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
TITLE VARCHAR(20) (가) (TITLE(나) ('Intern','Staff','Manager','Director','President'))
);
지갑안에 신용카드(credit)와 신분증(id)이 있고 카드(card)를 가지고 있다. 대중교통을 이용하는데 지갑 안에 현급(cash)이 있다면 택시를 이용하고 현금이 없는 경우 카드가 있는지 확인하고 카드가 있다면 버스를 이용한다 만약 현금과 카드 둘다 없다면 도보를 이용한다
SELECT ORDER_NO, ORDER_ID, PRODUCT_CODE, ORDER_QTY, ORDER_DATE
FROM EC_BASKET;
INSERT INTO EC_Order(ORDER_NO,ORDER_ID,PRODUCT_CODE,ORDER_QTY,CDATE)
SELECT*
FROM EC_BASKET;
SELECT ORDER_NO, ORDER_ID, PRODUCT_CODE,ORDER_QTY, CMONEY
FROM EC_Order
WHERE CMONEY IS NULL;
DELETE FROM EC_Basket;
commit;
7. 주문처리(EC_Order) 테이블의 결제금액(cmoney)이 널인 행에 대하여 주문 수량(Order_Qty)과 상품관리(EC_Product) 테이블의 단가(Unit_Price)를 이용하여 주문처리(EC_Order) 테이블의 주문금액(주문수량 x 단가)을 계산하여 저장하고, 구분(Gubun) 칼럼에 '미결'로 수정하시오. (서브 쿼리를 사용한 UPDATE문)
UPDATE EC_Order O
SET CMONEY =ORDER_QTY*(SELECT UNIT_PRICE
FROM EC_Product P
WHERE O.PRODUCT_CODE=P.PRODUCT_CODE)
,Gubun='미결'
WHERE CMONEY IS NULL;
select ORDER_NO, PRODUCT_CODE, ORDER_QTY, CMONEY, GUBUN
from EC_Order
WHERE Gubun='미결';
commit;
8. 상품관리 테이블(EC_Product)에서 단가가 높은 상위 상품 TOP-5에 대하여 [순위, 상품코드, 상품명, 단가, 생산처]를 출력하시오. (인라인 뷰)
SELECT*
FROM (SELECT ROWNUM num, a.*
FROM (SELECT Product_CODE, Product_Name, UNIT_PRICE,COMPANY
FROM EC_Product
ORDER BY 3 DESC)a
)
WHERE num BETWEEN 11 AND 15;
10. 주문처리(EC_Order) 테이블과 동일한 Empty_Order 빈 테이블을 생성하고, Empty_Order 테이블의 구조를 확인하시오.
SELECT Order_ID, Product_Code, (SELECT COUNT(*)
FROM EC_Order A
WHERE A.Product_code=B.Product_code
) "동일상품_구매자수"
FROM EC_Order B
WHERE Order_ID = 'jupark';
2. 주문처리(EC_Order) 테이블에서 구분(Gubun) 칼럼이 '배달' 또는 '결제' 행에 대하여 2018년 1월 1일부터 2018년 7월 30일까지 주문자ID별 결젲 합계 금액을 회원관리(EC_Member) 테이블의 구매실적(BuyCash)칼럼에 합하여 저장하시오.
UPDATE EC_Member M
SET BuyCash = BuyCash +
(SELECT SUM(CMoney)
FROM EC_Order O
WHERE O.Order_ID= M.UserID
AND CDate BETWEEN '2018/01/01' AND '2018/07/30'
AND Gubun IN ('배달', '결제'));
SELECT UserID, Name, TO_CHAR(BuyCash, 'L99,999,999')
FROM EC_Member
WHERE Buycash IS NOT NULL;
3. 주문처리(EC_Order) 테이블과 상품관리(EC_Product) 테이블, 회원관리(EC_Member) 테이블을 이용하여 결제합계금액(Cmoney)이 가장 많은 금액중 상위 5명에 대한 (회원명, 결제합계금액)을 출력하시오. (인라인 뷰 이용)
SELECT ROWNUM "순위", a.*
FROM (SELECT Name "회원명", SUM(CMoney) "결제합계금액"
FROM EC_Order O INNER JOIN EC_Member M ON O.Order_ID= M.UserID
GROUP BY Name
ORDER BY 2 DESC ) a
WHERE ROWNUM <= 5;
4. 주문처리(EC_Order) 테이블과 상품관리(EC_Product) 테이블을 이용하여 최근에 주문 결제한 상위자 5명에 대하여 (순위, 상품코드, 상품명, 주문수량, 결제방법, 결제금액, 결제일자)을 출력하시오. (인라인 뷰 이용)
SELECT ROWNUM "순위", a.*
FROM (SELECT Product_Code, Product_Name, Order_QTY, Csel, CMoney, CDate
FROM EC_Order INNER JOIN EC_Product USING (Product_Code)
WHERE CMoney IS NOT NULL AND CDate IS NOT NULL
ORDER BY CDate DESC ) a
WHERE ROWNUM <= 5;
5. 과목임시(T_Course) 테이블에서 추가수강료(Course_fees)의 평균값을 계산하여 출력하고, 추가 수강료가 평균 수강료보다 높은 과목을 출력하시오.
SELECT Course_ID, Student_ID, Score, Score_Assigned
FROM T_SG_Scores
WHERE (Course_ID, Score) IN (SELECT Course_ID, MAX(Score)
FROM T_SG_Scores
WHERE TO_CHAR(Score_Assigned, 'YY/MM') = '18/06'
GROUP BY Course_ID)
ORDER BY Course_ID;
8. 과목임시(T_Course) 테이블과 수강임시(T_SG_Scores) 테이블을 이용하여 한 명 시아 수강한 과목을 [과목코드, 과목명, 학점수, 담당교수번호, 추가수강료]를 과목코드순으로 출력하시오.
CREATE TABLE SG_Score_2018
AS
SELECT *
FROM SG_Scores
WHERE TO_CHAR(Score_Assigned, 'YY') = '18'
AND Score IS NOT NULL;
SELECT Student_ID, Course_ID, Score, Grade, Score_Assigned
FROM SG_Score_2018
ORDER BY 1, 2;
11. 과목(Course) 테이블에서 추가 수강료가 널인 행을 수강임시(T_Course) 테이블로 복사하시오.
INSERT INTO T_Course
SELECT *
FROM Course
WHERE Course_Fees IS NULL;
12. 수강(SG_Scores) 테이블과 학생(Student) 테이블을 이용하여 '컴공' 학과의 평균 성적 상위자 3명을 출력하되, 취득과목수가 최소한 3과목 이상인 학생의 (순위, 학과코드 ,학번, 서ㅕㅇ명, 취득과목수, 평균점수)를 출력하시오. 단 평균은 소숫점 2자리까지 반올림하여 출력함.
SELECT ROWNUM "순위", a.*
FROM (SELECT Dept_ID, student_ID, Name, COUNT(Course_ID), ROUND(AVG(Score),2) "평균"
FROM SG_Scores INNER JOIN Student USING (Student_ID)
GROUP BY dept_ID, Student_ID, Name
HAVING COUNT(Course_ID) > 3
ORDER BY 5 DESC )a
WHERE ROWNUM <= 3;
13. 수강(SG_Scores) 테이블로부터 과목별 등급 인원수를 피벗 테이블을 이용하여 출력하시오. 등급은 'A','A ','B+','B ','C+','C ',,'D+','D ','F '로 구분함
SELECT *
FROM (SELECT Title, Grade
FROM SG_Scores INNER JOIN Course USING (Course_ID) )
PIVOT (
COUNT(*)
FOR grade IN ('A+', 'A', 'B+', 'B', 'C+', 'C', 'D+', 'D', 'F ')
)
ORDER BY 1;
SELECT ORDER_ID,P.PRODUCT_CODE, PRODUCT_NAME,ORDER_QTY,CMONEY "주문금액"
FROM EC_Order P, EC_Product S
WHERE P.PRODUCT_CODE=S.PRODUCT_CODE
AND ORDER_ID='jupark'
ORDER BY 1;
SELECT ORDER_ID,PRODUCT_CODE, PRODUCT_NAME,ORDER_QTY,CMONEY "주문금액"
FROM EC_Order INNER JOIN EC_Product USING(PRODUCT_CODE)
WHERE ORDER_ID='jupark'
ORDER BY 1;
COLUMN 배달상품 FORMAT A14
SELECT NAME, TELEPHONE, ADDRESS, PRODUCT_NAME "배달상품", ORDER_QTY "수량"
FROM EC_Order P, EC_Member S, EC_Product Y
WHERE P.ORDER_ID=S.USERID
AND P.PRODUCT_CODE=Y.PRODUCT_CODE
AND GUBUN ='결제'
ORDER BY 1;
SELECT NAME, TELEPHONE, ADDRESS, PRODUCT_NAME "배달상품", ORDER_QTY "수량"
FROM EC_Order P INNER JOIN EC_Member S
ON(P.ORDER_ID=S.USERID)
INNER JOIN EC_Product Y
ON(P.PRODUCT_CODE=Y.PRODUCT_CODE)
WHERE GUBUN ='결제'
ORDER BY 1;
3. 상품관리(EC_Product) 테이블과 주문처리(EC_Order) 테이블을 이용하여, 모든 상품을 출력하되 주문 상품의 주문금액(주문 수량 x 단가)을 계산하여 [상품명, 주문 수량, 단가, 주문자 ID, 주문금액]을 주문자ID순으로 2가지 방법에 의하여 출력하시오.
SELECT PRODUCT_NAME "주문상품",ORDER_QTY "수량",
TO_CHAR(UNIT_PRICE,'L99,999,999') "단가",
ORDER_ID,
TO_CHAR(ORDER_QTY*UNIT_PRICE,'L99,999,999') "주문금액"
FROM EC_PRODUCT P, EC_ORDER C
WHERE P.Product_CODE=C.PRODUCT_CODE(+)
ORDER BY 4;
SELECT PRODUCT_NAME "주문상품",ORDER_QTY "수량",
TO_CHAR(UNIT_PRICE,'L99,999,999') "단가",
ORDER_ID,
TO_CHAR(ORDER_QTY*UNIT_PRICE,'L99,999,999') "주문금액"
FROM EC_Product LEFT OUTER JOIN EC_Order USING(Product_CODE)
ORDER BY 4;
4. 상품관리(EC_Product) 테이블과 주문처리(EC_Order) 테이블을 이용하여 한 번도 판매되지 않은 상품의 목록 [상품코드, 상품명, 단가, 재고수량]을 상품코드순으로 출력하시오. (외부조인 응용)
SELECT Name, Regist_No, Product_Name, Order_Qty, Unit_Price, SUBSTR(Address, 1,2) "거주지"
FROM EC_Member M INNER JOIN EC_Order O ON (M.UserID=O.Order_ID)
INNER JOIN EC_Product P ON (O.Product_Code =
P.Product_Code)
WHERE Address LIKE '서울%'
ORDER BY 1;
SELECT Dept_ID, Year, Student_ID, Name, Course_ID, Title, C_Number, Grade
FROM T_SG_Scores INNER JOIN Student USING (Student_ID)
INNER JOIN T_Course USING (Course_ID)
WHERE Student_ID = 'C1801'
ORDER BY 5;
6. 수강임시(T_SG_Scores) 테이블과 과목임시(T_Course) 테이블을 이용하여 'C1801' 학번의 등급에 대한 평점, 과목별 평점을 출력하시오. 단, 평점은 등급이 'A+'이면 4.5, 'A '이면 4.0, 'B+'이면 3.5, 'B '이면 3.0, 'C+'이면 2.5, 'C '이면 2.0, 'D+'이면 1.5, 'D '이면 1.0, 'F '이면 0.0이며, 과목별 평점은 "등급에 대한 평점 x 학점수"로 계산한다.
SELECT Student_ID, Course_ID, Title, C_Number "학점", Grade,
CASE Grade WHEN 'A+' THEN 4.5 WHEN 'A' THEN 4.0
WHEN 'B+' THEN 3.5 WHEN 'B' THEN 3.0
WHEN 'C+' THEN 2.5 WHEN 'C' THEN 2.0
WHEN 'D+' THEN 1.5 WHEN 'D' THEN 1.0
ELSE 0.0
END "등급평점",
CASE Grade WHEN 'A+' THEN 4.5 WHEN 'A' THEN 4.0
WHEN 'B+' THEN 3.5 WHEN 'B' THEN 3.0
WHEN 'C+' THEN 2.5 WHEN 'C' THEN 2.0
WHEN 'D+' THEN 1.5 WHEN 'D' THEN 1.0
ELSE 0.0
END * C_Number "과목평점"
FROM T_SG_Scores INNER JOIN Student USING (Student_ID)
INNER JOIN T_Course USING (Course_ID)
WHERE Student_ID = 'C1802'
ORDER BY Course_ID;
SELECT Dept_ID, Year, Student_ID, Name, Count (1) "과목수", SUM(Score) "총점",
TO_CHAR(ROUND (AVG(Score), 2), '999.99') "평균"
FROM T_SG_Scores SG INNER JOIN Student S USING (Student_ID)
WHERE Score IS NOT NULL
GROUP BY Dept_ID, Year, Student_ID, Name
Order BY 3 DESC;
8. 학과(Department) 테이블과 교수(Professor) 테이블을 이용하여 직책명(Duty)에 대한 계층적 구조("총장->학과장->교수"순)의 학과별 직위 명단을 출력하시오.
SELECT Dept_Name "소속", decode (Duty,'총장',''
,'학과장',' L______'
, NULL, ' L______') || Duty ||
' '|| Name || ' ' || Position "직책 및 성명"
FROM Professor P INNER JOIN Department D ON (P.Dept_ID = D.Dept_ID)
START WITH mgr is NULL
CONNECT BY prior Professor_id = Mgr ;
9. 수강(SG_Scores) 테이블과 과목(Course) 테이블을 이용하여 한 명이상 수강한 과목의 [과목코드, 과목명, 학점수]를 과목코드순으로 출력하시오. (INTERSECT)
SELECT Course_ID, Title, C_Number
FROM Course
INTERSECT
SELECT Course_ID, Title, C_Number
FROM SG_Scores INNER JOIN Course USING (Course_ID)
ORDER BY 1;
SELECT Course_ID, Title, C_Number
FROM SG_Scores INNER JOIN Course USING (Course_ID)
WHERE Student_ID LIKE 'C18%'
UNION
SELECT Course_ID, Title, C_Number
FROM SG_Scores INNER JOIN Course USING (Course_ID)
WHERE Student_ID LIKE 'C17%'
MINUS
SELECT Course_ID, Title, C_Number
FROM SG_Scores INNER JOIN Course USING (Course_ID)
WHERE Student_ID LIKE 'C16%'
ORDER BY 1;
import React from 'react';
import Home from './routes/Home';
import './App.css';
function App(){
return <Home/>;
}
export default App;
4. 영화앱 여러 기능 추가하기-라우터 만들기
라우터는 사용자가 입력한 URL을 통해 특정 컴포넌트를 불러준다.
예를 들어 사용자가 localhost:3000/about이라고 입력하면 About 컴포넌트를 불러주는 것이다.
react-router-dom은 여러 종류의 라우터를 제공하는데 우리는 HashRouter과 Route 컴포넌트를 사용할 것이다.
App.js 코드
<Route path="/about" element={<About/>}/>
이렇게 작성해주면 localhost:3000/#/about 주소일 경우
About 컴포넌트 화면을 보여준다.
home도 마찬가지
import React from 'react';
import './App.css';
import {HashRouter,Route, Routes} from 'react-router-dom';
import About from './routes/About';
import Home from './routes/Home';
function App(){
return(
<HashRouter>
<Routes>
<Route path="/" element={<Home/>}/>
<Route path="/about" element={<About/>}/>
</Routes>
</HashRouter>
)
}
export default App;
About컴포넌트에도 내용이 있어야하므로 간단하게 만들어준다.
About.js
import React from 'react';
import './About.css';
function About() {
return (
<div className="about__container">
<span>
“Freedom is the freedom to say that two plus two make four. If that is granted, all else
follows.”
</span>
<span>- George Orwell, 1984</span>
</div>
);
}
export default About;