The solution:

FLIGHT(airline,number)
AIRPORT(code,name,city,state)
AIRPLANE_TYPE(maker,model,range)
AIRPLANE(id,maker,model)
FLIGHT_LEG(airline,flightnum,length,departureAirport,arrivalAirport)
LEG_INSTANCE(date,airline,flightnum,departureAirport,arrivalAirport,airplane,actualDepartureAirport,actualArrivalAirport)
CAN_LAND_AT(maker,model,airport)

Explanation:

  1. Each entity type becomes a relation with the attributes of the entity type and a primary key corresponding to the key of the entity type.

    	  FLIGHT(airline,number)
    	  AIRPORT(code,name,city,state)
    	  AIRPLANE_TYPE(maker,model,range)
    	  AIRPLANE(id)
    	
  2. Each weak entity type becomes a relation with the attributes of the entity type and the key attributes of the other entity type(s) involved in the identifying relationship(s), with a primary key corresponding to the weak key of the weak entity type and the key(s) of the other entity types. There are also foreign key constraints.

    Note that FlightLeg has three identifying relationships; InstanceOf, however, is not one (which can be seen because it is a 1:N relationship instead of N:1 and FlightLeg doesn't have total participation in it).

    	    FLIGHT_LEG(airline,flightnum,length,departureAirport,arrivalAirport)
    	  
    	    LEG_INSTANCE(date,airline,flightnum,departureAirport,arrivalAirport)
    	  
  3. There aren't any binary 1:1 relationships.

  4. Binary 1:N relationship types can be mapped using the foreign key approach (adding the relationship information to the N side) or the cross-reference approach. The foreign key approach works for these cases, and allows for the capture of the total participation.

    For Type, add AIRPLANE_TYPE's primary key attributes to AIRPLANE. They do not need to be part of AIRPLANE's primary key because there is only one airplane type for a given airplane, but they do need to be NOT NULL because of Airplane's total participation.

    	  AIRPLANE(id,maker,model)
    	    

    The same strategy can be used for Assigned, DepartsFrom, and ArrivesAt.

    LEG_INSTANCE(date,airline,flightnum,departureAirport,arrivalAirport,airplane,actualDepartureAirport,actualArrivalAirport)
    

    Identifying relationships ContainsLegs, Departure, Arrival, and InstanceOf have already been handled as part of mapping weak entity types.

  5. Binary M:N relationships are mapped using the cross reference approach. The attributes of the new relation are the primary key attributes of the participating entity types, and all attributes form the primary key.

    	  CAN_LAND_AT(maker,model,airport)